Skip to main content

WSO2 ESB Enterprise Integration Patterns (EIP) Documentation

WSO2 has recently published a library of documentation on the list of enterprise integration patterns (EIP) with WSO2 ESB.

The documentation comprehensively covers the complete domain, and each pattern is detailed with how they can be implemented with WSO2 ESB mediators, along with samples and images.

For example, the following is an extract from the Message Store EIP page, showing an example scenario with WSO2 ESB.

Each page is packed with a sample scenario, along with a sample implementation each, and makes developers life easy, both to learn the concepts in general, as well as to use WSO2 ESB to implement those in practice.

Following is the complete list of EIP library entries on WSO2 ESB documentation page.

Messaging Systems

clip_image002

Message Channels

How one application communicates with another using messaging.

clip_image004

Message

How two applications connected by a message channel exchange a piece of information.

clip_image006

Pipes and Filters

How to perform complex processing on a message while maintaining independence and flexibility.

clip_image008

Message Router

How to decouple individual processing steps so that messages can be passed to different filters depending on conditions.

clip_image010

Message Translator

How systems using different data formats communicate with each other using messaging.

clip_image012

Message Endpoint

How an application connects to a messaging channel to send and receive messages.

Messaging Channels

clip_image014

Point-to-Point Channel

How the caller can be sure that exactly one receiver will receive the document or perform the call.

clip_image016

Publish-Subscribe Channel

How the sender broadcasts an event to all interested receivers.

clip_image018

Datatype Channel

How the application sends a data item such that the receiver will know how to process it.

clip_image020

Invalid Message Channel

How a messaging receiver gracefully handles a message that makes no sense.

clip_image022

Dead Letter Channel

What the messaging system does with a message it cannot deliver.

clip_image024

Guaranteed Delivery

How the sender ensures delivery of a message, even if the messaging system fails.

clip_image026

Channel Adapter

How to connect an application to the messaging system to send/receive messages.

clip_image028

Messaging Bridge

How multiple messaging systems can be connected so that messages available on one are also available on the others.

clip_image030

Message Bus

An architecture enabling separate applications to work together in a decoupled fashion such that applications can be easily added or removed without affecting the others.

Message Construction

clip_image032

Command Message

How messaging can be used to invoke a procedure in another application.

clip_image034

Document Message

How messaging can be used to transfer data between applications.

clip_image036

Event Message

How messaging can be used to transmit events from one application to another.

clip_image038

Request-Reply

How an application that sends a message gets a response from the receiver.

clip_image040

Return Address

How a replier knows where to send the reply.

clip_image042

Correlation Identifier

How a requester that has received a reply knows which request the reply is for.

clip_image044

Message Sequence

How messaging can transmit an arbitrarily large amount of data.

clip_image046

Message Expiration

How a sender indicates when a message should be considered stale and therefore should not be processed.

 

Format Indicator

How a message’s data format can be designed to allow for possible future changes.

Message Routing

clip_image048

Content-Based Router

How to handle a situation when the implementation of a single logical function (such as an inventory check) is spread across multiple physical systems.

clip_image050

Message Filter

How a component avoids receiving uninteresting messages.

clip_image052

Dynamic Router

How to avoid the dependency of a router in all possible destinations, while maintaining its efficiency.

clip_image054

Recipient List

How to route a message to a list of dynamically specified recipients.

clip_image056

Splitter

How to process a message if it contains multiple elements, each of which may have to be processed in a different way.

clip_image058

Aggregator

How to combine the results of individual but related messages so that they can be processed as a whole.

clip_image060

Resequencer

How to get a stream of related but out-of-sequence messages back into the correct order.

clip_image062

Composed Msg. Processor

How to maintain the overall flow when processing a message consisting of multiple elements, each of which may require different processing.

 

Scatter-Gather

How to maintain the overall flow when a message needs to be sent to multiple recipients, each of which may send a reply.

clip_image064

Routing Slip

How to route a message consecutively through a series of steps when the sequence of the steps is not known at design time and may vary for each message.

clip_image066

Process Manager

How to route a message through multiple processing steps, when the required steps may not be known at design time and may not be sequential.

clip_image068

Message Broker

How to decouple the destination of a message from the sender and maintain central control over the flow of messages.

Message Transformation

clip_image070

Envelope Wrapper

How existing systems participate in a messaging exchange, which places specific requirements in the message format, such as message header fields or encryption.

clip_image072

Content Enricher

How to communicate with another system if the message originator does not have all the required data items available.

clip_image074

Content Filter

How to simplify dealing with a large message when you are interested only in a few data items.

clip_image076

Claim Check

How to reduce the data volume of a message sent across the system without sacrificing information content.

clip_image078

Normalizer

How to process messages that are semantically equivalent but arrive in a different format.

 

Canonical Data Model

How to minimize dependencies when integrating applications that use different data formats.

Messaging Endpoints

clip_image080

Messaging Gateway

How to encapsulate access to the messaging system from the rest of the application.

 

Messaging Mapper

How to move data between domain objects and the messaging infrastructure, while keeping the two independent of each other.

clip_image082

Transactional Client

How a client controls its transactions with the messaging system.

clip_image084

Polling Consumer

How an application consumes a message when the application is ready.

clip_image086

Event-Driven Consumer

How an application automatically consumes messages as they become available.

clip_image088

Competing Consumers

How a messaging client processes multiple messages concurrently.

clip_image090

Message Dispatcher

How multiple consumers on a single channel coordinate their message processing.

clip_image092

Selective Consumer

How a message consumer selects which messages to receive.

clip_image094

Durable Subscriber

How a subscriber avoids missing messages while it is not listening for them.

 

Idempotent Receiver

How a message receiver deals with duplicate messages.

clip_image096

Service Activator

How an application designs a service to be invoked via both messaging and non-messaging techniques.

System Management

clip_image098

Channel Purger

Removes unwanted messages, which can disturb tests or running systems, from a channel.

clip_image100

Control Bus

Administers a messaging system that is distributed across multiple platforms and a wide geographic area.

clip_image102

Detour

Routes a message through intermediate steps to perform validation, testing or debugging functions.

 

Message History

Lists all applications that the message passed through since its origination.

clip_image104

Message Store

Reports against message information without disturbing the loosely coupled and transient nature of a messaging system.

clip_image106

Smart Proxy

Tracks messages on a service that publishes reply messages to the Return Address specified by the requester.

clip_image108

Test Message

Ensures the health of message processing components by preventing situations such as garbling outgoing messages due to an internal fault.

clip_image110

Wire Tap

Inspects messages that travel on a Point-to-Point Channel.

 

Technorati Tags: ,,,

Comments

Popular posts from this blog

24 Lessons Learnt in the 12 Years at WSO2

I joined WSO2 in the second week after its inception on September 1 st , 2005. Since then I have been playing various roles. It has been a long journey, with interesting experiences. It has never been a smooth ride, but a very vivid and enjoyable one.  There were good times, not so good times, tough times and exciting times. But I have enjoyed it all the way along, and the journey and the outcomes so far have been exciting. I have been privileged to be here for this long.  And I have learned so many lessons thought-out. Here are the highlights, the top 24 from those many lessons I learnt. 1. Delegation is the first lesson to learn towards great leadership I am a geeky technical person. I can do many things on my own. When I started with WSO2 I joined as a C/C++ person in an architect role. I worked with the C team and created the Apache Axis2 C project. I would work hours, considered any issue that the code base ran into and worked on everything and anything that I

Life lessons are lifelong: Moving along with new generation

This post on  lessons learnt  was written by me about four years ago. I read this again in full yesterday after few years, and I got inspired myself from my own lessons.  Life sure moved on since then, but most of the lessons mentioned in the post are timeless.  We live in the age of social media where fake advice is all over the place. We are filled with baseless, useless, meatless, boneless arguments and advice each day over social media. The reality is, however, great insight takes time and take shape though painful gain.  In the quest to attract skills, talent, people and eventually profits, the human resource functions in organisations has turned into fake rewards, fake appreciations and fake entertainment. Yet, the productivity, efficiency, accountability remains a key challenge for most organisations. The reality is the shallow techniques are not working any more.  The young generation today are bombarded with information bites. I call them information bites, because, everything