microservice patterns - sergeyzolotukhin/learn-java-gradle GitHub Wiki
-
Event-Driven
- Event Sourcing
- CQRS (Command Query Responsibility Segregation)
-
- Database per Service
- Polyglot Persistence
- Data Sharding
- Saga (Distributed Transactions)
-
Integration
- API Gateway
- Backends for Frontends (BFF)
- Aggregator
- Client-Side UI Composition
- Client-Side Load Balancing
-
Cross-Cutting Concern
- Sidecar
- Externalized Configuration
- Service Discovery (Service Registry)
-
Observability
- Distributed Tracing
- Health Check
-
Deployment
- Service Instance per Container
- Shadow Deployment
- Blue-Green Deployment
- Service Mesh
- Serverless Deployment
-
Resiliency
- Circuit Breaker
- Bulkhead
- Retry
-
Smart Endpoints, Dumb Pipes
-
Asynchronous Messaging (Event-Driven Architecture)
-
Consumer-Driven Contracts (CDC)
-
Strangler Fig Pattern
-
Stateless Services
https://www.geeksforgeeks.org/system-design/microservices-design-patterns/ https://microservices.io/patterns/microservices.html https://www.designgurus.io/blog/19-essential-microservices-patterns-for-system-design-interviews?gad_source=1&gad_campaignid=23168317168&gbraid=0AAAAADME9yolt79iRgnTod4pHbGHx-Twp&gclid=CjwKCAiA3L_JBhAlEiwAlcWO57c4P2KlTCdYE4sTqw_vw3QO8d4ii0lsvDLsZjVT54QiYKZbDjjQWhoCpygQAvD_BwE https://microservices.io/patterns/ https://dzone.com/articles/design-patterns-for-microservices https://learn.microsoft.com/en-us/azure/architecture/microservices/design/patterns https://medium.com/@alxkm/microservices-architecture-patterns-exploring-the-essential-27318b72c88f https://test.tplus.market/blog/17
The fundamental goal of software resiliency patterns is to build systems that anticipate and tolerate failures while continuing to provide an acceptable level of service.
resiliency - устойчивость anticipate - предвидеть tolerate - терпеть, выносить
you divide into discrete sections your application's resources so that failure of any one of your dependencies is not cascaded into the entire system
The bulkhead pattern is a design strategy that isolates components of a system into separate resource pools to prevent a failure in one part from cascading and affecting the entire application.
promotion - повышение, продвижение resilience4J
Event Sourcing Pattern stores all changes to application state as a sequence of events rather than only saving the current state.
A consumer-driven contract (CDC) in microservices is a testing method where consumers define the expectations they have of a service provider's API, and providers use these consumer expectations to verify that they won't break compatibility.
Polyglot persistence in microservices is the practice of using different data storage technologies for different services to match specific needs, such as relational databases for transactional data, key-value stores for caching, and document databases for flexible data structures.