33 lines
1.4 KiB
Markdown
Raw Normal View History

2017-10-16 19:33:15 +02:00
---
layout: pattern
title: EIP Splitter
folder: eip-splitter
permalink: /patterns/eip-splitter/
2017-12-25 11:30:24 +02:00
categories: Integration
language: en
2017-10-16 19:33:15 +02:00
tags:
- Enterprise Integration Pattern
2017-10-16 19:33:15 +02:00
---
## Intent
2017-10-17 12:42:41 +02:00
It is very common in integration systems that incoming messages consists of many items bundled together. For example
an invoice document contains multiple invoice lines describing transaction (quantity, name of provided
service/sold goods, price etc.). Such bundled messages may not be accepted by other systems. This is where splitter
pattern comes in handy. It will take the whole document, split it based on given criteria and send individual
items to the endpoint.
2017-10-16 19:33:15 +02:00
## Diagram
2017-10-17 12:42:41 +02:00
![alt text](./etc/sequencer.gif "Splitter")
2017-10-16 19:33:15 +02:00
## Applicability
2017-10-17 12:42:41 +02:00
Use the Splitter pattern when
2017-10-16 19:33:15 +02:00
2017-10-17 12:42:41 +02:00
* You need to split received data into smaller pieces to process them individually
* You need to control the size of data batches you are able to process
2017-10-16 19:33:15 +02:00
## Credits
2017-10-17 12:42:41 +02:00
* [Gregor Hohpe, Bobby Woolf - Enterprise Integration Patterns](http://www.enterpriseintegrationpatterns.com/patterns/messaging/Sequencer.html)
* [Apache Camel - Documentation](http://camel.apache.org/splitter.html)
* [Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions](https://www.amazon.com/gp/product/0321200683/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0321200683&linkCode=as2&tag=javadesignpat-20&linkId=122e0cff74eedd004cc81a3ecfa623cf)