This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit c0e49706359935547c5c5e186cbd74ad246d0738 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Fri Nov 22 15:37:56 2019 +0100 CAMEL-14191: EIP docs - Add links to last EIP patterns and add new pages if missing content --- .../ROOT/assets/images/eip/ProcessManager.gif | Bin 0 -> 3175 bytes .../ROOT/assets/images/eip/ProcessManagerIcon.gif | Bin 0 -> 429 bytes .../pages/enterprise-integration-patterns.adoc | 5 +++++ .../modules/ROOT/pages/process-manager.adoc | 25 +++++++++++++++++++++ 4 files changed, 30 insertions(+) diff --git a/docs/user-manual/modules/ROOT/assets/images/eip/ProcessManager.gif b/docs/user-manual/modules/ROOT/assets/images/eip/ProcessManager.gif new file mode 100644 index 0000000..22c8501 Binary files /dev/null and b/docs/user-manual/modules/ROOT/assets/images/eip/ProcessManager.gif differ diff --git a/docs/user-manual/modules/ROOT/assets/images/eip/ProcessManagerIcon.gif b/docs/user-manual/modules/ROOT/assets/images/eip/ProcessManagerIcon.gif new file mode 100644 index 0000000..b1f931d Binary files /dev/null and b/docs/user-manual/modules/ROOT/assets/images/eip/ProcessManagerIcon.gif differ diff --git a/docs/user-manual/modules/ROOT/pages/enterprise-integration-patterns.adoc b/docs/user-manual/modules/ROOT/pages/enterprise-integration-patterns.adoc index 8174f59..cef0080 100644 --- a/docs/user-manual/modules/ROOT/pages/enterprise-integration-patterns.adoc +++ b/docs/user-manual/modules/ROOT/pages/enterprise-integration-patterns.adoc @@ -163,6 +163,11 @@ a|image::eip/RoutingTableIcon.gif[image] consecutively through a series of processing steps when the sequence of steps is not known at design-time and may vary for each message? +a|image::eip/ProcessManagerIcon.gif[image] +|xref:process-manager.adoc[Process Manager] |How do we route a message +through multiple processing steps when the required steps may not be known +at design-time and may not be sequential? + | |xref:throttle-eip.adoc[Throttler] |How can I throttle messages to ensure that a specific endpoint does not get overloaded, or we don't exceed an diff --git a/docs/user-manual/modules/ROOT/pages/process-manager.adoc b/docs/user-manual/modules/ROOT/pages/process-manager.adoc new file mode 100644 index 0000000..e22086d --- /dev/null +++ b/docs/user-manual/modules/ROOT/pages/process-manager.adoc @@ -0,0 +1,25 @@ +[[Process-Manager]] += Process Manager + +Camel supports the +https://www.enterpriseintegrationpatterns.com/patterns/messaging/ProcessManager.html[Process Manager] +from the xref:enterprise-integration-patterns.adoc[EIP patterns] book. + +The xref:routingSlip-eip.adoc[Routing Slip] demonstrates how a message can be routed through a dynamic series of processing steps. +The solution of the Routing Slip is based on two key assumptions: the sequence of processing steps has +to be determined up-front and the sequence is linear. In many cases, these assumptions may not be fulfilled. +For example, routing decisions might have to be made based on intermediate results. +Or, the processing steps may not be sequential, but multiple steps might be executed in parallel. + +How do we route a message through multiple processing steps when the required steps may not be known +at design-time and may not be sequential? + +image::eip/ProcessManager.gif[image] + +Use a central processing unit, a Process Manager, to maintain the state of the sequence and determine +the next processing step based on intermediate results. + +With Camel this pattern is implemented by using the xref:dynamicRouter-eip.adoc[Dynamic Router] pattern. +Camel's implementation of the dynamic router maintains the state of the sequence, and allows +to determine the next processing step based dynamically. +