Software Architecture
What are my problems - What can solve these problems
Agile does not mean to dump design, but brings in more design through an iterative design approach.
Separation of concerns
Precondition for the iterative approach. Fail early, but be possible to adopt early.
- Do only one thing, but do it good
- Decouple modules
- Decouple dependencies
Micro services
Modular monolith vs micro service
Interprocess communication
- Start in a single repo
Pro
- Bootstrap development and deployment workflow
- Scalable
Cons
- Introducing latency
- Introducing complexity
- Harder deployments