Skip to content

AndreiAta/SIPipesFiltersPattern

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 

Repository files navigation

Pipes and Filters Pattern

The purpose of this repository is demonstrating a simplified version of the Pipes and Filters Pattern used in system integration.

For more info check out this complete list of enterprise integration patterns

Problem statement

The problem of performing complex processing on a message affects developers attempting to integrate systems. The impact of this problem is hard maintainability and flexibility.

A successful solution is to break down this process into a set of separate independent components (Filters) each performing its own task and connect them through channels (Pipes).

Diagram

The diagram shows the filters and pipes for our Online Chat application.

alt tag

There are several message filtering requirements that must be met:

  • Removal or censorship of messages with inappropriate language.
  • Emoji insertion instead of certain strings sequences such as ;), :( etc.
  • First letter of message should be capitalized

Short description

Pipes connect and send output messages from one filter to the next.

Each filter exposes a very simple interface:

  • it receives messages on the inbound pipe,
  • processes the message,
  • and publishes the results to the outbound pipe.

Since all filters share the same interface they can be connected to different pipes. Therefore, the main benefit of this pattern is flexibility because we can simply remove or add available filters
and compose different solutions.

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages