Architecture

Role

  • understanding and managing Architectural Drivers: requirements, quality attributes, constraints, and principles
  • designing software
    • includes technology selection
  • identifying and mitigating technical risks
  • leadership
  • quality assurance

vs Design

@simon-brown

In the real world, the distinction between architecture and design isn’t clear-cut, but this definition does provide us with a basis to think about what might be significant (i.e. “architectural”) in our own software systems. For example, this could include:

  • The overall shape of the software system (e.g. client-server, web-based, native mobile, distributed, microservices, asynchronous vs synchronous, etc).
  • The structure of the code inside the various parts of the software system (e.g. whether the code is structured as components, layers, features, ports and adapters, etc). What is “software architecture”? 14
  • The choice of technologies (i.e. programming language, deployment platform, etc).
  • The choice of frameworks (e.g. web MVC framework, persistence/ORM framework, etc).
  • The choice of design approach/patterns (e.g. the approach to performance, scalability, availability, etc).

Resources

References


Children
  1. Architecture Decision Records
  2. Backend for Frontend
  3. Bce
  4. Cell
  5. Choreography
  6. Clean Architecture
  7. Command Query Responsibility Segregation
  8. Command Sourcing
  9. DCI Architecture
  10. Dependency Inversion
  11. EBI Architecture
  12. Event Driven Architecture
  13. Event Streaming
  14. Hexagon Architecture
  15. Inversion of Control
  16. Lean
  17. Microservice
  18. Monolith
  19. Mvc
  20. Onion
  21. Orchestration
  22. Pool Architecture
  23. Relay Architecture
  24. Serverless
  25. Togaf
  26. Vertical Slice

Backlinks