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
|
2021-05-19 10:49:05 -06:00
|
|
|
language: en
|
2017-10-16 19:33:15 +02:00
|
|
|
tags:
|
2019-12-13 21:09:28 +02:00
|
|
|
- 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
|
|
|
|
2019-12-07 20:01:13 +02:00
|
|
|
## Diagram
|
2017-10-17 12:42:41 +02:00
|
|
|

|
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)
|
2020-07-07 21:23:04 +03:00
|
|
|
* [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)
|