SOA Patterns is DZone Refcard #038, “Service-Orient Your Enterprise,” by Eugene Ciurana. The free reference organizes message-oriented service patterns into fundamentals, a pattern language, basic service patterns, architectural patterns, and compound patterns. It remains a useful map of integration problems, but its ESB-era guidance needs qualification when applied to cloud-native, event-driven, and microservice systems.
Find the refcard on DZone. Treat it as a compact reference—not a production runbook, standards document, or prescriptive architecture.
What the DZone SOA Patterns Refcard covers
The refcard describes systems in which technology-independent services communicate through messages. A system may provide or consume a service depending on the workflow; services and messages are intended to be stateless; implementations may use different languages and runtimes; and discovery plus public contracts are part of the architecture.
That is the refcard’s formulation, not a universal definition. Modern service-oriented systems can combine synchronous APIs, queues, events, streams, and workflow engines.
Recommended Free Tools
#1 Best Overall
The eight principles
- Normalized service contract
- Loose coupling
- Abstraction from implementation details
- Composability
- Runtime autonomy
- Statelessness
- Reusability
- Discoverability through metadata or public contracts
Each principle has a cost. Generic reusable services can lose domain clarity; decoupling requires retries, correlation, dead-letter handling, and tracing; discovery depends on maintained ownership and version metadata; and composition inherits dependency latency and failure. Stateless request handling also does not eliminate durable state in aggregators, workflows, sagas, or business records.
Basic service patterns
The refcard presents these as building blocks that are normally combined rather than used alone.
| Pattern | What it solves | Modern equivalent | Main risk |
|---|---|---|---|
| Aggregator | Combines correlated fragments into one downstream result. | Batch assembly, stream join, order or shipment collection. | Requires durable correlation, completion rules, timeouts, duplicate handling, and late-message recovery. |
| Service Bus | Provides a common channel between heterogeneous endpoints and hides protocol differences. | Broker, integration bus, managed queue or topic. | A shared bus can become a bottleneck, policy choke point, or centralized coupling layer. |
| Dynamic Routing | Chooses destinations using rules and topology knowledge. | Rule-based routing or policy-driven integration. | Routing rules can become hidden business logic and couple the system to its topology. |
| Event-Driven Consumer | Delivers work when a message is available instead of relying on constant polling. | Push consumer, queue subscription, event trigger. | Duplicates, poison messages, backpressure, visibility timeouts, and ordering require explicit design. |
| Filter | Validates, removes, redacts, or changes message content in a pipeline. | Validation middleware, policy stage, stream operator. | Silent drops, order-dependent behavior, repeated parsing, and difficult debugging. |
| Router | Dispatches to one or more destinations using payload, metadata, type, or rules. | Content-based router or event-bus rule. | Rule ownership and versioning can become unclear. |
| Translator/Transformer | Converts schemas, protocols, formats, or metadata between incompatible systems. | Adapter, anti-corruption layer, schema mapper. | Semantic mismatches and mapping failures may be hidden by apparently successful translation. |
The refcard distinguishes Router from Dynamic Routing, although real implementations often overlap: Dynamic Routing emphasizes destination and path knowledge, while Router emphasizes rule-based dispatch.
Architectural patterns
Asynchronous Processing
A queue or buffer lets producers and consumers run at different rates, avoiding a synchronous dependency on back-end availability. Define maximum queue age, retry limits, ordering scope, backlog alarms, and behavior when consumers are down. “Exactly once” should not be assumed; idempotency and deduplication remain application responsibilities.
Free tools Windows power users keep installed
One-click scans. No signup required.
Rank #2
Bridge
A Bridge connects protocols or network locations and may also route, filter, or transform. It is useful for on-premises-to-cloud and legacy integration, but protocol conversion can conceal security, latency, and semantic failure boundaries.
Cross-Service Operation
This pattern coordinates multiple activities with completion or rollback behavior. Across independently owned services and external side effects, global rollback is usually impractical. Sagas, compensating actions, reservations, confirmations, eventual consistency, and reconciliation are more realistic alternatives.
Event-Driven Dispatching
Consumers subscribe or react when an event occurs rather than polling. Events can be duplicated, late, out of order, or incompatible after schema changes; an event describing a fact is not automatically a command to perform work.
Process Aggregation
A coordinator combines interdependent steps whose sequence or participation can change with business rules. This maps to workflow engines and saga coordinators, but the coordinator becomes a stateful owner of process logic and can become too powerful.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallRank #3
Routing and Filtering
This formalizes pipelines of filters and routers. Guard against incorrect filter order, repeated inspection of large payloads, unbounded rule growth, resource exhaustion, and assumptions about intermediate stages.
Replicator
A Replicator sends a message or payload to multiple endpoints for independent processing. It supports parallel consumers but increases delivery volume, cost, duplicate risk, and the possibility of divergent downstream state.
Compound patterns
Centralized Schema
Sharing schemas separately from contracts and physical representations can reduce duplicate definitions and support mapping or code generation. It can also impose a shared change schedule and weaken independent service evolution. A shared schema is not automatically a stable schema.
Concurrent Contracts
Different consumers can use different contracts for one capability—for example, legacy and modern clients or consumers needing different data subsets. The price is contract proliferation, compatibility testing, documentation, and version governance.
Rank #4
Capability Decomposition
The DZone page spells this pattern “Decomponse Capability,” apparently a typographical error. The intended idea is to keep capabilities and schemas separable so a bloated service can evolve incrementally. Separation alone does not establish good domain, ownership, data, or transaction boundaries.
Enterprise Service Bus
The ESB is a protocol-neutral channel that can route, filter, transform, handle protocols, and perform optional in-flight processing. It was valuable for heterogeneous enterprise estates. It becomes dangerous when business logic, orchestration, policy, and transformations accumulate in one centrally deployed runtime—a distributed monolith with a shared release and failure domain.
Fault-Tolerant Service Provider
The refcard emphasizes redundant service containers and brokers, load balancing, and stateless, reentrant services. Current designs should add health checks, bounded timeouts and retries, circuit breakers, bulkheads, dead-letter queues, multi-zone or multi-region recovery, backups, replay, and dependency-level observability.
Wrapper
A Wrapper exposes a legacy API, file exchange, or client/server interface behind a normalized service boundary. It enables incremental modernization and an anti-corruption layer, but may expose only a narrow capability and conceal legacy transaction, performance, or error semantics.
How the patterns combine: an order example
- A Wrapper exposes the legacy order system.
- A Bridge connects on-premises and cloud protocols.
- A Translator normalizes the order representation.
- A Router selects fulfillment paths by order type.
- A Replicator distributes an order event to inventory, billing, and analytics.
- An Aggregator collects fulfillment responses using a correlation key and timeout.
- A Process Aggregator coordinates non-transactional steps and compensations.
- Asynchronous Processing absorbs downstream outages and rate differences.
- A Fault-Tolerant Service Provider supplies redundancy and recovery.
Every step adds operational obligations: idempotency keys, trace propagation, schema compatibility, dead-letter procedures, replay safety, and ownership of durable state.
Translating SOA patterns to cloud and microservices
The design problems remain, but infrastructure is more specialized. AWS’s application-integration guidance separates queues, pub/sub, event buses, brokers, streams, and workflows rather than treating them as interchangeable: application-integration decision guide.
| Need | Prefer | Important distinction |
|---|---|---|
| Reliable work for one consumer or consumer group | Queue | Work is normally removed after successful handling; backlog and retry policy matter. |
| Notify several independent consumers | Pub/sub or event bus | Each consumer needs its own failure isolation and idempotency. |
| Replayable, ordered, high-volume history | Event stream | Retention, partitions, offsets, and consumer lag are central. |
| Durable multi-step business process | Workflow engine or saga | Process state and compensation are explicit. |
| JMS, AMQP, MQTT, or traditional broker compatibility | Managed broker | Protocol compatibility may matter more than serverless simplicity. |
| Protocol mediation across many legacy systems | Integration platform or carefully bounded ESB | Keep core business ownership out of shared middleware where possible. |
AWS describes EventBridge event buses as routers from multiple sources to multiple targets with filtering and transformation: EventBridge event buses. It recommends FIFO SQS or SNS when strict ordering is required rather than assuming EventBridge provides that ordering model: AWS messaging guidance.
For broader messaging vocabulary, Enterprise Integration Patterns covers message construction, routing, transformation, and system management. It overlaps with the DZone catalog but is not the same catalog.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
When an ESB fits—and when it does not
Use a centralized integration platform when
- Many legacy protocols and applications must be mediated.
- Central governance, audit, or policy enforcement is mandatory.
- Existing operations teams have deep platform expertise.
- The logic is genuinely cross-cutting rather than a core domain workflow.
Choose a more focused service when
- Teams require independent deployment and ownership.
- Communication is simple work delivery or event publication.
- A queue, event bus, API gateway, or workflow engine directly matches the semantics.
- Middleware would become the location of business rules and release coordination.
Implementation checklist
- What coupling is removed, and what new schema, timing, ownership, or operational coupling is introduced?
- Is the message a command, query, or event?
- What are the delivery and ordering guarantees—global, per partition, per group, or best effort?
- Can every consumer safely retry the same message?
- Where do retries, poison messages, dead letters, and replay live?
- Who owns durable state, correlation, and reconciliation?
- How are contracts versioned, discovered, deprecated, and tested?
- How are authentication, authorization, data classification, tracing, and audit handled?
- What happens when a dependency, broker, region, or external provider is unavailable?
- What is the migration, compensation, and recovery plan?
Bottom line
SOA Patterns is valuable because it names recurring integration problems—routing, transformation, aggregation, asynchronous processing, legacy wrapping, composition, and fault tolerance. Use it as a conceptual map, then choose modern infrastructure according to delivery semantics, ordering, replay, workflow state, protocol compatibility, ownership, and failure recovery. The refcard’s principles endure; its ESB and rollback assumptions require deliberate adaptation.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




