2.1. Service Host pattern
2.2. Active Service pattern
2.3. Transactional Service pattern
2.4. Workflodize pattern
3.1. Decoupled Invocation pattern
- RequestQueue, ReplyQueue
- Apache Kafka
- https://docs.microsoft.com/en-us/azure/architecture/patterns/cqrs
3.2. Parallel Pipelines pattern
- Horizonatal scaling
- http://www.rgoarchitects.com/Files/SOAPatterns/GridableService.pdf
- grid head node, grid agent nodes
3.4. Service Instance pattern
- Horizonatal scaling
- Implement the Virtual Endpoint pattern, wrapping multiple instances of the edge component to create a virtual endpoint that provides location transparency.
- https://docs.microsoft.com/en-us/azure/architecture/patterns/gateway-aggregation
- https://github.com/duwamish-os/swasthya
- service actively monitors its internal state, acts on potential trouble, tries to heal itself, and continuously publishes its status.
- https://docs.microsoft.com/en-us/azure/developer/java/fundamentals/java-get-started-with-logzio
4.1. Secured Message pattern //Encrypt - message level
4.2. Secured Infrastructure pattern //Encrypt - protocol level
4.3. Service Firewall pattern //network level
4.4. Identity Provider pattern //SSO
4.5. Service Monitor pattern
5.1. Request/Reply pattern //Synchronous
5.2. Request/Reaction pattern //Async
5.3. Inversion of Communications pattern //EDA (Event-Driven Architecture) - Reactive??
5.4. Saga pattern //Long running business transaction
6.1. Reservation pattern //saga
6.2. Composite Front End (Portal) pattern
6.3. Client/Server/Service pattern
7.1 SB
7.2 orchestration pattern //Externalize business long running processes
7.3 Aggregated Reporting
- SERVICE ANTIPATTERNS
Engineer-to-Engineer Talk: How and Why Twitter Uses Scala
Replacing Cron & Building Scalable Data Pipelines At Airbnb
Apache Camel and Scala: A Powerful Combination
SOA Patterns by by Eugene Ciurana
Basic Service Patterns
Aggregator
Service Bus
Dynamic Routing
Event-Driven Consumer
Filter
Router
Transformer //Heterogeneous systems integration
Architectural Patterns
Asynchronous Processing
Bridge
Cross-service operation //coordinating multiple run-time activities
Event-Driven Dispatching // routing messages to consumers in response to specific events
Process Aggregation //combining two or more non-sequential, inter-dependent processing steps
Routing and Filtering
Replicator
Compound Patterns
Centralized Schema //sharing schemas across application boundaries to avoid redundant data
Concurrent Contracts //allowing multiple consumers with different abstractions or implementations to simultaneously consume the same service
Decomponse Capability
Enterprise Service Bus
Fault-Tolerant Service Provider
Wrapper
Patterns for distributed system
See:
- Chapter 5, Implementing Microservice Communication, Sam Newman: https://github.com/lamatola-os/microservice-skeleton