IndexCheat SheetServalSource

Architecture

The Only Unbreakable Law, 2022

Fundamentals of Software Architecture: An Engineering Approach – Mark Richards, Neal Ford, 2020

Laws of software architecture:

  1. Everything in software architecture is a trade-off. If an architect thinks they have discovered something that isn’t a trade-off, more likely they just haven’t identified the trade-off yet.
  2. Why is more important than how.

On reuse:

While reuse is beneficial, remember the First Law of Software Architecture regarding trade-offs. The negative trade-off of reuse is coupling. When an architect designs a system that favors reuse, they also favor coupling to achieve that reuse, either by inheritance or composition.

However, if the architect’s goal requires high degrees of decoupling, then they favor duplication over reuse. The primary goal of microservices is high decoupling, physically modeling the logical notion of bounded context.

Architecture Decision Anti-Patterns:

Team Warning Signs:

Negotiating with Business Stakeholders:

Negotiating with Other Architects:

Negotiating with Developers:

The 4 C’s of Architecture: communication, collaboration, clarity, and conciseness.

The ThoughtWorks Technology Radar:

There are not right or wrong answers in architecture—only trade-offs.

Avoiding Microservice Megadisasters – Jimmy Bogard, 2017