Software architecture

Conway's Law, as defined by Melvin E. Conway:

Any organisation that designs a software system (defined broadly) will produce a design whose structure is a copy of the organisation's communication structure.

Software Architectures describe fundamental design goals around which software systems are built and form blueprints for projects. Migrating between architectures is costly, usually involving migration between different implementations.

  1. DDD
  2. Microservice
  3. Monolithic
  4. SOA
  5. Serverless