Skip to content

Latest commit

 

History

History
executable file
·
151 lines (130 loc) · 5.16 KB

architecture-cheat-sheet.md

File metadata and controls

executable file
·
151 lines (130 loc) · 5.16 KB

Architecture cheat sheet

Useful links

  • Clean Architecture ( Robet C. Martin )
  • Domain-Driven Design: Tackling Complexity in the Heart of Software
  • Software Architecture in Practice ( Len Bass )
  • Patterns of Enterprise Application Architecture ( Martin Fowler )
  • Enterprise Integration Patterns ( Gregor Hohpe )
  • The Software Architect Elevator ( Grehor Hohpe )
  • 97 Things Every Software Architect Should Know ( Richard Monson )
  • 37 Things One Architect Knows ( Gregor Hohpe )
  • Software Architecture Patterns ( Mark Richards )

What is architecture

  • Architecture != Tools & Frameworks
  • Postponing decisions about Tooling and frameworks
  • Focus on customer, not environment

Architecture trade-offs

  • Build vs Buy
  • Coding vs Configuration
  • Product customisation

Why to make a documentation:

mindmap
documentation)Documentation(
    {{one common vision}}
        common bird-eye view
        naming conventions
        decrease sketching time for each meeting
    {{part of DefinitionOfDone}}
        visibility
        knowledge sharing
    {{one point of truth}}
        new team member
        existing team memeber
        external teams
    {{interchange responsibility}}
        split hard tasks
        real Agile


Loading

architecture phases architecture context architecture styles software architecture architecture antipatterns

Architecture cycle

architecture cycle

Software architecture patterns

architecture patterns

TODO: cell-based Architecture (cellular architecture)

Architecture Decision Records

  • Priority
  • Stakeholders
  • Status
  • Owners ( lead of activities )
  • Assumptions
  • Risks

Togaf

togaf phases
togaf phases
base-target
togaf layers
togaf aspects
togaf metamodel

Archimate

useful links

resilient architecture

  • Timeouts
  • Graceful Degradation
  • Retries
  • Exponential Backoff
  • Circuit Breakers

Archimate with Sequence diagram

image

UML diagrams

Structure

Behavior

Behavior of itself

Behavior with other / Interaction

Application general schema, application demands

  • development
  • operations
  • support
    • L1
    • L2
    • L3
  • data migration ( for evolution/revolution )

Architecture style: Microservice

Microservices Benefits:

  • Independent Deployments
  • Fault Isolation
  • Enchanced Scalability

Microservices importance of design patterns:

  • Scalability
  • Reducing Complexity
  • Distributed Data Management
  • Enhancing Communication

Microservices Design patterns:

  • API Gateway

    like GoF.facade single entry point for all client requests

  • Database per Service

    like a GoF.memento ( partially ) single databank per service, data isolation

  • Circuit Breaker

    prevent overwhelming of the calls to outdated external resource

  • Event-Driven

    like GoF.observer publish event ( notify ), when own state has changed

  • Saga

    like a GoF.command + GoF.proxy for list of the external call will make undo in case of fail

Communication between applications

communication: messaging

2git-messaging