The path
Macro Architecture
When the system grows, other decisions show up: monolith or microservices, how they integrate, how to scale. My recommendation is to start with a well-designed modular monolith and split only when there is a concrete reason.
Topics
Monoliths
Modular Monolith
Microservices Basics
Benefits, Decompositional Techniques, Bounded Contexts
Microservices Integration
Shared Database, Synchronous/Asynchronous, Orchestration/Choreography, RPC, REST, Event-Based
User Interfaces
API Composition, UI Fragment Composition, Backends for Frontends
Splitting Monoliths
Seams, Reporting DB, Data Pumps
Scaling Microservices
Timeouts, Circuit Breakers, Bulkheads, Isolation, Idempotency, Load Balancing, Scaling for Reads, Scaling for Writes, CQRS, Caching, Service Discovery
Layered Architecture
Microkernel Architecture
Event Driven Architecture
Broker, Mediator
Serverless
Backend as a Service, Function as a Service
Cloud Native
Resources
- DDD, Hexagonal, Onion, Clean, CQRS, … How I put it all together
Article · 22 pages
- Clean Coders 15 - Solid Components
Video · 58 min
- Clean Coders 16 - Component Cohesion
Video · 55 min
- Clean Coders 17 - Component Coupling
Video · 1 h 1 min
Video · 54 min
- Building Microservices - Designing fine-grained systems
Book · Sam Newman, O'Reilly, 2015 · Whole book · 280 pages
- Building Microservices? Here is what you should know
Article · 8 pages
Video · 1 h 10 min
- Reactive Microservices Architecture
Book · Jonas Bonér, O'Reilly, 2016 · Whole book · 54 pages
- Reactive Microsystems
Book · Jonas Bonér, O'Reilly, 2017 · Whole book · 84 pages
- What is Cloud Native?
Article · 8 pages
- Cloud-Native Architecture: A Guide, Definitions, Types & More
Article · 4 pages
- Introduction to architecting systems for scale
Article · 8 pages
- Fundamentals of Software Architecture
Book · Mark Richards, Neal Ford, O'Reilly, 2020
- Monolith to Microservices - Evolutionary Patterns to Transform Your Monolith
Book · Sam Newman, O'Reilly, 2019
- Microservices Patterns - With examples in Java
Book · Chris Richardson, Manning, 2019
- Cloud Native Patterns - Designing change-tolerant software
Book · Cornelia Davis, Manning, 2019
- Release It! Design and Deploy Production-Ready Software
Book · Michael T. Nygard, Pragmatic Programmers, 2007