Architecture
Architecture should be designed for change, and you must never make comproises that impact architecture goals negatively as architecture is by definition hard to change .
An evolutionary architecture supports incremental, guided change as a first principle along multiple dimensions
Architectural practices for evolution
Source: Patrick Kua - Goto Conference
Technical Practices:
API First, REST/Event Driven, SaaS, Cloud, and Microservices. We’re creating APIs first before we code them, using the REST/Event Driven architectural style to ensure we’re able to scale as our department and business grows in scope, evolving our systems in parallel. Building for SaaS makes our applications ready to live on the Internet, where embracing the cloud ensures that as a modern architecture, we’re fostering innovation. Finally, our adoption of Microservices ties all these principles together in a powerful architectural style that lets us move fast while we keep our complexity low. Source: Zalando Blog
API First - as a plattform you care more about APIs/ business functions then the UI as the UI could be delivered by someone else using your API.
Fitness Function are the goal and quantitative measure to evaluate the guide change
https://medium.com/developers-writing/my-take-on-evolutionary-architecture-f761d45e75b9
Testing for "First Principles" (basis that will be hard to correct in the long term and the negative impacts in production can only be monitored later when they stack up) -> can be de priortized for first mvp?:
Code Quality
Complexity
Functionality (easier to test and interpret where the error is on unit level but in the end only relevant on the quality level of the solution)
Testing "Quality" (how good is the current solution:
Real time monitoring for (http://benjiweber.co.uk/blog/2015/03/02/monitoring-check-smells/\
perfomormance
security
Fitness functions / SLAs Types:
Automation ( -> AI)
Reasonable Security
Limited Blast Radius
Dimentions of architectural diagramms:
solution (process & component)
implementation / technology (frameworks)
production
evolution
Tool: plantuml
Domain Diagrams
Documentation of Architecutral Decisions
Architectural decision should be documented in a light weight architecture decision record. My private decision are located here in github based on this template.
brew install adr-tools
npm install madr && mkdir -p docs/adr && cp node_modules/madr/template/* docs/adr/
Keep a technology overview with the Tech Radars:
Community
Last updated