Microservice architecture

I noted by the follow by microservices.io, just in case the website cannot be visited anymore.

Application patterns

Decomposition

Using 4+1 architectural view model to decide how to decompose services. These notes below are from Microservices patterns of *Chris Richarson.

  • Logical view - The software elements that are created by developers. In object-oriented languages, these elements are classes and packages. The relations between them are the relationships between classes and packages, including inheritance, associations, and depends-on.

  • Implementation view - The output of the build system. This view consists of modules, which represent packaged code, and components, which are executable or deployable units consisting of one or more modules. In Java, a module is a JAR file, and a component is typically a WAR file or an executable JAR file. The relations between them include dependency relationships between modules and composition relationships between components and modules.

  • Process view - The components at runtime. Each element is a process, and the relations between processes represent interprocess communication.

  • Deployment - How the processes are mapped to machines. The elements in this view consist of (physical or virtual) machines and the processes. The relations between machines represent networking. This view also describes the relationship between processes and machines.

  • [[Decompose by business capability]] read more

  • [[Decompose by subdomain]] read more

  • [[Self-contained Service]] read more

  • [[Service per team]] read more

Data patterns

Database architecture

Querying

Maintaining data consistency

Testing

UI

  • [[Server-side page fragment composition]] read more

  • [[Client-side UI composition]] read more

Observability (part 1)

Application Infrastructure patterns

Cross-cutting concerns

Security

Communication patterns (part 1)

Transactional messaging

Communication style

Reliability

Discovery (part 1)

Observability (part 2)

Infrastructure patterns

Deployment

Communication patterns (part 2)

Discovery (part 2)

External API

  • [[API gateway]] or [[Backends for Frontend]] read more

Other good reads

  • https://grokkingtechinterview.com/24-microservices-interview-questions-and-answers-to-land-that-job-4ae81ef34083

Last updated