Digital-First
The frontend is food
Delivery trucks deliver
We eat food not trucks
I apologize for the absurd haiku, but there is something about frontend versus backend and digital-first (discovering and monetizing new experiences and operations) versus traditional practices (implementing current operations) that is best considered via noun/verb differences.
And as a further apology- this blog is shaped by functional and object-oriented programming and configuration management in complex scaled systems and doesn't really explain those foundations. It's for practitioners.
Nouns and verbs, and how do we manage them in complex enterprise software development. So, here goes...
The frontend is about your nouns (state being modified by actions).
The backend is about your verbs (actions).
Your data-layer is about your nouns (state).
Monorepos are fantastic for noun management.
Microservices are fantastic for verb management because verbs are naturally isolated from each other, whereas your nouns are cross-cutting concerns that interact with lots of verbs.
Noun management is easier the shorter your iteration. Small changes are easy to reason about.
Nouns are cross-cutting across all verbs. It’s why micro-frontends are usually a bad idea (nouns are cross-cutting concerns) and microservices are a good idea (verbs can be isolated).
Verbs are somewhat independent of your iteration length. They can be isolated and have few side effects.
Your frontend can have state but ultimately, it is usually a more transient state for UI effects that you don’t hold onto since that risks data-loss, data-conflicts, security concerns, etc.
The interesting aspect of this is that predominantly backend services teams don’t understand how to build nouns at scale. Experientially, everything is verb. It's transformational, not representational.
If you want to be customer-centric, digital-first, and play to win in the digital-first economy, you must be noun-centric at the experience layer. That is where you connect with the customer. The more noun-centric an interface, the more discoverable it is and the more meaning it conveys.
And AI will accelerate digital-first capabilities. The bulwark of operational scale and brand will become significantly weaker over the next 3 years.
The net of this? Generally, use monorepos for frontend, micro-services for backend. Why? Because nouns are cross-cutting concerns, and verbs not so much.