The Influence of Maven Principle on Modern Application Architecture

The Design Principles: virtues of the modern application architecture

If modern applications were human, the design principles would be virtues every application should strive for. There are three principles that I consider core to the modern application architecture and they are:

  1. The Git Principle
  2. The Maven Principle
  3. The Principle of Immutability

The Maven Principle

When Maven was released, the two core tenets of Maven instantly caught my attention and there were:

  1. Declarative Dependency Management
  2. Convention Over Configuration

Declarative Dependency Management

Today all modern frameworks use the declarative paradigm and the imperative paradigm is almost considered an anti-pattern. This pattern did not exist before Maven (at least not in the mainstream) and dependency hell was real. I remember when I was consulting for a large bank in the mid-2000s, all versions of all relevant libraries were checked-in to the source-code control system. Maven changed that and the developer community never looked back.

Convention Over Configuration

Maven popularized the virtue of convention over configuration. It essentially means that the developer does not have to think about best practices. While Maven used this principle for basic things like organizing file systems (folks from the pre-maven era would content the basic classification), modern environments-as-a-Service platforms like Roost.ai use this principle to create safe environments for pre-production workloads.

Summary

While design patterns were the right guideposts for legacy applications, modern applications should use design principles. The three core design principles are git principle, maven principle, and the principle of immutability. While the “declarative dependency management” part of the maven principle has become the defacto standard, “convention over configuration” is still in the infancy of adoption, and platforms like Roost.ai are leading the way there.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Rishi Yadav

Rishi Yadav

This blog is mostly around my cloud-native & Environments-as-a-Service (EaaS) technology insights. I would throw some crypto wisdom here and there.