Archangels

Entry to the O'Reilly Autumn 2021 Architectural Kata


> Home > Solution Background < Prev | Next >


Overall Architecture Style Analysis

Identified Key Architectural Characteristics

The key architectural characteristics that were identified help us to select and overall architecture style. The top three are shown in bold and with a ^.

  • Interoperability ^
  • Data Integrity
  • Scalability/Elasticity
  • Configurability ^
  • Authorisation ^
  • Workflow
  • Fault Tolerance

Architecture Capabilities Comparison

The above characteristics are highlighted below in green, with data integrity, above, not included in the matrix below. Data integrity will be a key architecture characteristic of the data store selected, along with the interface to this data store.

architectural-styles

[original comparison matrix from DeveloperToArchitect.com]

Architecture Capabilities Analysis

The above matrix gives us two candidates for our architecture, which need further analysis:

Microservices

Pros Cons Mitigations
Scores highly on elasticity and scalability, very important for analytics computation and media access. Scores low on configurability and workflow, which would be a big trade-off with configurability being one of the top 3 characteristics. Configurability is a concern, scoring low, but it is configurability of the profile that is important and not of the system as a whole.
Scores highly on fault-tolerance, important to make sure the community of Farmacy Family is not disrupted by a fault in one area. Middling score on interoperability/integration, important because of integration with Farmacy Foods and other systems. The middling interoperability ability can be mitigated by using an interface for integration with Farmacy Foods and other systems.
  Requires that the database be split along with each microservice. This would be very complex and another big trade-off.  
  Scores low on workflow, which would be a trade-off with workflow being important for onboarding of customers.  
  Also scores badly on cost and simplicity. Not key characteristics, but likely to be important to management and lead technologists respectively.  

Event-Driven

Pros Cons Mitigations
Scores highly on elasticity and scalability, very important for analytics computation and media access. Interoperability and configurability score fairly low, which is a concern with them being two of the top three characteristics. Configurability is a concern, scoring low, but it is configurability of the profile that is important and not of the system as a whole.
Scores highly on fault-tolerance, important to make sure the community of Farmacy Family is not disrupted by a fault in one area. Middling score on interoperability/integration, important because of integration with Farmacy Foods and other systems. The middling interoperability ability can be mitigated by using an interface for integration with Farmacy Foods and other systems.
Workflow scores highly, important for onboarding of customers. scores badly on simplicity. Not a key characteristic, but likely to be important to lead technologists.  

Conclusion

Both architecture options have trade-offs, but the trade-offs for the Event-Driven architecture are lower overall.

Decision

ADR: 002 We-will-use-an-event-driven-backend-architecture


> Home > Solution Background < Prev | Next >