Architecture
Andrii Chykharivskyi
Micro-architecture
Advantages:
Micro-architecture
Disadvantages:
Monolith architecture
Advantages:
Monolith architecture
Disadvantages:
Macro-architecture
Macro-architecture
Advantages:
Macro-architecture
Disadvantages:
Differences
Diversity
Each microservice can also be done in a different language
Some technologies are much better suited for certain tasks
For projects with a monolithic architecture, there is now a simple solution - FaaS (Function as a service)
Deploying
Migration Planning
Microservices are not the goal. You don’t “win” by having microservices. Adopting a microservice architecture should be a conscious decision, one based on rational decision-making.
Three Key Questions
Reusing
Reuse is one of the most oft-stated goals for microservice migration, and in my opinion is a poor goal in the first place
A
B
The Customer Services team needs to format a PDF in order to provide customer invoices. Another part of the system already handles PDF generation: produce PDFs for printing purposes in the warehouse for orders shipped to customers.
What to choose? Own implementation or coordinate with other people and get the changes made?
When Microservices is a bad idea?
Trade-Offs
Reversible and Irreversible Decisions
What to do?
Strangler Fig Application Pattern
Decomposing the Database
Decomposing the Database
Decomposing the Database
Decomposing the Database
Decomposing the Database
Data Synchronization
Pattern Synchronize Data in Application
Data Synchronization
Pattern Tracer Write
Data Synchronization
Pattern Monolith as data access layer
Data Synchronization
Pattern Multischema storage
Data Synchronization
Pattern Split Table
Data Synchronization
Pattern Move Foreign-Key Relationship to Code
Data Synchronization
Pattern Move Foreign-Key Relationship to Code
Static Data
- we can duplicate data
- we can move data to package
Transactions
Two-Phase Commits
Transactions
Sagas
Communication
Event-driven communication
Sync communication
Apache Kafka
Text
More services, more pain
Andrii Chykharivskyi