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

Risk-storming

Attack-graphing

Thread-modelling

Architecture Decision Record