#System Architecture patterns
- N-Tier
- Event-Driven - Mediator / Broker
- Microkernel
- MicroServices
- Blackboard
- client - MVC / MVP / MVVM
- server - RPC / Remoting / WS / SOA / REST
- Space-Based
#SOA Patterns
- Service Host - infra
- Active Service - worker thread for upstream pre-fetch
- Transactional Service
- Workflow
- Edge Component
- Decoupled Invocation - Queues for reliability, bursts
- Parallel Pipelines - Steps -> throughput
- Gridable Service
- Service Instance - mutiple stateless copies, NLB
- Virtual Endpoint — location transparency
- Service Watchdog - Monitors and Health Mgmt
- Secured Message - Encrypts, decrypts, and signs individual messages
- Secured Infrastructure
- Service Firewall
- Identity Provider - Federated Security: Tokens, Claims
- Service Monitor - centralized
- Fire & Forget
- Request/Response
- Callback
- Inversion of Communications - Peers
- Saga - LRTs
- Reservation - correlation ticket for submission to a flow
- Composite Front End - client-side microkernel (modules) with Service Workers for model<->DTOs
- Service Bus - pubsub loosely coupled
- Orchestration — flow flexibility , governance
- Knot - tightly coupled p2p
- Macroservice - not low enough granularity
- Transactional Integration —Transactions cross service boundaries and couple services together
- Message Channel - applications communicate with one another
- Message - applications connected by a message channel exchange a piece of information
- Pipes and Filters - perform pluggable complex processing on a message
- Message Router - decouple individual processing steps - conditionally pass messages
- Message Translator - different data formats
- Message Endpoint - connect to a messaging channel to send and receive messages
- Point to Point Channel - caller ensured of exactly one receiver
- Publish Subscribe Channel - sender broadcasts event to all interested receivers
- Dead Letter Channel - messaging system handles undeliverable messages
- Guaranteed Delivery - even if the messaging system fails
- Message Bus - scalable decoupled integration architecture
- Event Message
- Request Reply
- Correlation Identifier - allow sender to correlate request / response
- Return Address
- Content Based Router - distribute a logical workflow across multiple physical systems
- Message Filter - ignore irrelevant messages
- Dynamic Router - avoid dependency of hard-coded destinations
- Recipient List - static / dynamic
- Splitter
- Aggregator - combine results of individual, related messages
- Resequencer - reorder message stream
- Composed Message Processor - logically coordinate message flow
- Scatter-Gather
- Routing Slip - message metadata for controlling its route processing steps
- Throttler - ensure endpoint is overloaded - SLA
- Sampling - algorithmically process a subset of high-load messages
- Delayer - delay the sending of a message
- Load Balancer - across dynamic number of endpoints
- Multicast - simultaneously route a message to multiple endpoints
- Loop - repeat processing a message
- Content Enricher - add further info to a message
- Content Filter - remove irrelevant info from a message
- Claim Check - replace large message content with a lookup key
- Normalizer - process semantically equivalent messages of different schema
- Sort
- Validate
- Messaging Mapper - entity <> DTO transform -> decoupling
- Event Driven Consumer - push-oriented recipient - when sender is ready
- Polling Consumer - pull-oriented recipient - when receiver is ready
- Competing Consumers - sender sends to concurrent clients
- Message Dispatcher - sender coordinates sending to concurrent clients
- Selective Consumer - receiver informs sender of filtration logic
- Durable Subscriber - receiver catch up on missed messages
- Idempotent Consumer - receiver handle duplicate messages
- Transactional Client - message delivery guarantee protocols
- Messaging Gateway - system facade
- Service Activator - service can be invoked via messaging or LPC
- ControlBus - distributed systems coordinator
- Detour - routing pipeline for value added functionality
- Wire Tap - inspect messages
- Message History - analyze message flows in distributed systems
- Log