You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2026/06/25 07:28:43 UTC
(camel) branch main updated (c04ba8da3a17 -> 18db5f537a37)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
from c04ba8da3a17 chore: fix broken cross-page xref links in docs
new 6f3fe508f157 chore: add AI Patterns page mapping modern terms to Camel EIPs
new 18db5f537a37 chore: fix AI Patterns page xrefs, nav generation, and fallback description
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../src/main/docs/modules/eips/nav.adoc | 1 +
.../main/docs/modules/eips/pages/ai-patterns.adoc | 218 +++++++++++++++++++++
.../pages/enterprise-integration-patterns.adoc | 4 +
docs/eips-nav.adoc.template | 1 +
docs/main/modules/reference/pages/index.adoc | 3 +-
docs/user-manual/modules/ROOT/pages/index.adoc | 3 +-
docs/user-manual/modules/ROOT/references.adoc | 3 +-
.../maven/packaging/PrepareDocSymlinksMojo.java | 3 +-
8 files changed, 232 insertions(+), 4 deletions(-)
create mode 100644 core/camel-core-engine/src/main/docs/modules/eips/pages/ai-patterns.adoc
(camel) 02/02: chore: fix AI Patterns page xrefs, nav generation, and fallback description
Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 18db5f537a37bb622885d823df9aaa67a0fe7872
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Jun 25 08:27:17 2026 +0200
chore: fix AI Patterns page xrefs, nav generation, and fallback description
Fix broken xrefs (error-handler, langchain4j-tokenizer) to use correct
module prefixes. Exclude ai-patterns.adoc from auto-generated nav
entries in PrepareDocSymlinksMojo to avoid duplicates with the template.
Update Fallback entry to list onException as the general mechanism
alongside the Circuit Breaker-specific onFallback.
Co-Authored-By: Claude <no...@anthropic.com>
Signed-off-by: Claus Ibsen <cl...@gmail.com>
---
core/camel-core-engine/src/main/docs/modules/eips/nav.adoc | 1 +
.../src/main/docs/modules/eips/pages/ai-patterns.adoc | 8 ++++----
.../org/apache/camel/maven/packaging/PrepareDocSymlinksMojo.java | 3 ++-
3 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/core/camel-core-engine/src/main/docs/modules/eips/nav.adoc b/core/camel-core-engine/src/main/docs/modules/eips/nav.adoc
index 0de05172f76a..69a90e9d895a 100644
--- a/core/camel-core-engine/src/main/docs/modules/eips/nav.adoc
+++ b/core/camel-core-engine/src/main/docs/modules/eips/nav.adoc
@@ -2,6 +2,7 @@
// make edits in docs/*nav.adoc.template files instead
* xref:eips:enterprise-integration-patterns.adoc[Enterprise Integration Patterns]
+* xref:eips:ai-patterns.adoc[AI Patterns]
** xref:aggregate-eip.adoc[Aggregate]
** xref:batchConfig-eip.adoc[BatchConfig]
** xref:bean-eip.adoc[Bean]
diff --git a/core/camel-core-engine/src/main/docs/modules/eips/pages/ai-patterns.adoc b/core/camel-core-engine/src/main/docs/modules/eips/pages/ai-patterns.adoc
index 7d288fb4ec79..a783c5882f69 100644
--- a/core/camel-core-engine/src/main/docs/modules/eips/pages/ai-patterns.adoc
+++ b/core/camel-core-engine/src/main/docs/modules/eips/pages/ai-patterns.adoc
@@ -82,7 +82,7 @@ See also the full xref:enterprise-integration-patterns.adoc[Enterprise Integrati
|Term |Camel EIP |Description
|Retry
-|xref:error-handler.adoc[Error Handler]
+|xref:manual::error-handler.adoc[Error Handler]
|Automatically retry failed message processing with configurable backoff.
|Circuit Breaker
@@ -90,8 +90,8 @@ See also the full xref:enterprise-integration-patterns.adoc[Enterprise Integrati
|Stop calling a failing service and provide a fallback response.
|Fallback
-|xref:onFallback-eip.adoc[On Fallback]
-|Define an alternative route when the primary processing fails.
+|xref:manual::exception-clause.adoc[On Exception], xref:onFallback-eip.adoc[On Fallback]
+|Handle exceptions with onException (general), or define a Circuit Breaker fallback with onFallback.
|Dead Letter / Poison Pill
|xref:dead-letter-channel.adoc[Dead Letter Channel]
@@ -213,6 +213,6 @@ See also the full xref:enterprise-integration-patterns.adoc[Enterprise Integrati
|Google's Agent-to-Agent protocol for communication between AI agents.
|Tokenize / Chunk (for LLM)
-|xref:ROOT:langchain4j-tokenizer.adoc[LangChain4j Tokenizer]
+|xref:others:langchain4j-tokenizer.adoc[LangChain4j Tokenizer]
|Split text into tokens or chunks sized for LLM context windows, using LangChain4j tokenizer strategies.
|===
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareDocSymlinksMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareDocSymlinksMojo.java
index 79f7a42ae9db..79662c5330b3 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareDocSymlinksMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareDocSymlinksMojo.java
@@ -705,7 +705,8 @@ public class PrepareDocSymlinksMojo extends AbstractMojo {
eips.asciidoc = new KindSpec(
Collections.emptyList(), null,
"core/camel-core-engine/src/main/docs/modules/eips/pages", null, null,
- path -> !path.endsWith("enterprise-integration-patterns.adoc"));
+ path -> !path.endsWith("enterprise-integration-patterns.adoc")
+ && !path.endsWith("ai-patterns.adoc"));
eips.json = new KindSpec(
List.of("core/camel-core-model/src/generated/resources/META-INF/org/apache/camel/model/{,**/}*.json"),
null, "core/camel-core-engine/src/main/docs/modules/eips/examples/json", null, "eip", null);
(camel) 01/02: chore: add AI Patterns page mapping modern terms to Camel EIPs
Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 6f3fe508f15736c615f7e4870a5ca3dc0563bc95
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Jun 25 08:20:57 2026 +0200
chore: add AI Patterns page mapping modern terms to Camel EIPs
New standalone page (ai-patterns.adoc) that maps common AI, data
engineering, and distributed systems terminology (fan-out, scatter-
gather, retry, dedup, etc.) to the corresponding Camel EIPs. Includes
sections for A2A and LangChain4j Tokenizer. Cross-linked from the
EIP index page and added to all doc navigation points alongside
EIP Patterns.
Co-Authored-By: Claude <no...@anthropic.com>
Signed-off-by: Claus Ibsen <cl...@gmail.com>
---
.../main/docs/modules/eips/pages/ai-patterns.adoc | 218 +++++++++++++++++++++
.../pages/enterprise-integration-patterns.adoc | 4 +
docs/eips-nav.adoc.template | 1 +
docs/main/modules/reference/pages/index.adoc | 3 +-
docs/user-manual/modules/ROOT/pages/index.adoc | 3 +-
docs/user-manual/modules/ROOT/references.adoc | 3 +-
6 files changed, 229 insertions(+), 3 deletions(-)
diff --git a/core/camel-core-engine/src/main/docs/modules/eips/pages/ai-patterns.adoc b/core/camel-core-engine/src/main/docs/modules/eips/pages/ai-patterns.adoc
new file mode 100644
index 000000000000..7d288fb4ec79
--- /dev/null
+++ b/core/camel-core-engine/src/main/docs/modules/eips/pages/ai-patterns.adoc
@@ -0,0 +1,218 @@
+= AI Patterns
+:doctitle: AI Patterns
+:shortname: ai-patterns
+:description: Common AI and modern software design pattern terms mapped to Camel EIPs
+
+If you come from an AI, data engineering, or modern distributed systems background,
+you may know integration patterns by different names. This page maps common
+terms to the corresponding Camel EIPs.
+
+See also the full xref:enterprise-integration-patterns.adoc[Enterprise Integration Patterns] index.
+
+== Data Flow
+
+[width="100%",cols="20%,30%,50%"]
+|===
+|Term |Camel EIP |Description
+
+|Pipeline / Chain
+|xref:pipeline-eip.adoc[Pipes and Filters]
+|Process a message through a sequence of steps.
+
+|Fan-out / Broadcast
+|xref:multicast-eip.adoc[Multicast]
+|Send the same message to multiple destinations in parallel.
+
+|Fan-in / Reduce / Join
+|xref:aggregate-eip.adoc[Aggregator]
+|Combine multiple related messages into a single message.
+
+|Scatter-Gather
+|xref:scatter-gather.adoc[Scatter-Gather]
+|Send a message to multiple recipients and aggregate their replies.
+
+|Map / Transform
+|xref:transform-eip.adoc[Transform], xref:setBody-eip.adoc[Set Body]
+|Transform or replace the message content.
+
+|Split / Chunk
+|xref:split-eip.adoc[Splitter]
+|Break a message into smaller pieces for individual processing.
+
+|Merge
+|xref:aggregate-eip.adoc[Aggregator]
+|Merge multiple messages into one using a correlation key and aggregation strategy.
+
+|Filter
+|xref:filter-eip.adoc[Message Filter]
+|Discard messages that do not match a predicate.
+
+|Router / Dispatch
+|xref:choice-eip.adoc[Content-Based Router], xref:dynamicRouter-eip.adoc[Dynamic Router]
+|Route messages to different destinations based on content or rules.
+|===
+
+== Enrichment and Context
+
+[width="100%",cols="20%,30%,50%"]
+|===
+|Term |Camel EIP |Description
+
+|Enrich / Hydrate / Augment
+|xref:enrich-eip.adoc[Enrich], xref:pollEnrich-eip.adoc[Poll Enrich]
+|Fetch additional data from an external source and merge it into the message.
+
+|Validate / Guard
+|xref:validate-eip.adoc[Validate]
+|Check that a message satisfies a condition before further processing.
+
+|Normalize
+|xref:normalizer.adoc[Normalizer]
+|Convert messages from different formats into a single canonical format.
+
+|Serialize / Deserialize
+|xref:marshal-eip.adoc[Marshal], xref:unmarshal-eip.adoc[Unmarshal]
+|Convert between objects and wire formats (JSON, XML, Avro, Protobuf, etc.).
+|===
+
+== Resilience and Error Handling
+
+[width="100%",cols="20%,30%,50%"]
+|===
+|Term |Camel EIP |Description
+
+|Retry
+|xref:error-handler.adoc[Error Handler]
+|Automatically retry failed message processing with configurable backoff.
+
+|Circuit Breaker
+|xref:circuitBreaker-eip.adoc[Circuit Breaker]
+|Stop calling a failing service and provide a fallback response.
+
+|Fallback
+|xref:onFallback-eip.adoc[On Fallback]
+|Define an alternative route when the primary processing fails.
+
+|Dead Letter / Poison Pill
+|xref:dead-letter-channel.adoc[Dead Letter Channel]
+|Move messages that cannot be processed to a separate channel for investigation.
+
+|Compensate / Rollback
+|xref:saga-eip.adoc[Saga], xref:rollback-eip.adoc[Rollback]
+|Undo or compensate for completed steps when a multi-step process fails.
+|===
+
+== Rate Control and Scheduling
+
+[width="100%",cols="20%,30%,50%"]
+|===
+|Term |Camel EIP |Description
+
+|Rate Limit / Throttle
+|xref:throttle-eip.adoc[Throttler]
+|Limit the number of messages processed per time period.
+
+|Debounce / Delay
+|xref:delay-eip.adoc[Delayer]
+|Introduce a delay before processing a message.
+
+|Poll / Pull
+|xref:polling-consumer.adoc[Polling Consumer], xref:poll-eip.adoc[Poll]
+|Consume messages on demand rather than being pushed.
+
+|Loop / Iterate
+|xref:loop-eip.adoc[Loop]
+|Repeat processing a message a fixed number of times or until a condition is met.
+
+|Sample
+|xref:sample-eip.adoc[Sampling]
+|Pick one message out of many in a time period to reduce volume.
+|===
+
+== Load Distribution
+
+[width="100%",cols="20%,30%,50%"]
+|===
+|Term |Camel EIP |Description
+
+|Load Balance
+|xref:loadBalance-eip.adoc[Load Balancer]
+|Distribute messages across multiple endpoints.
+
+|Round Robin
+|xref:roundRobinLoadBalancer-eip.adoc[Round Robin Load Balancer]
+|Distribute messages evenly in rotation.
+
+|Failover
+|xref:failoverLoadBalancer-eip.adoc[Failover Load Balancer]
+|Try the next endpoint when the current one fails.
+
+|Weighted
+|xref:weightedLoadBalancer-eip.adoc[Weighted Load Balancer]
+|Distribute messages according to weighted ratios.
+
+|Sticky / Affinity
+|xref:stickyLoadBalancer-eip.adoc[Sticky Load Balancer]
+|Route related messages to the same endpoint based on a correlation key.
+|===
+
+== Deduplication and Idempotency
+
+[width="100%",cols="20%,30%,50%"]
+|===
+|Term |Camel EIP |Description
+
+|Dedup / Deduplicate
+|xref:idempotentConsumer-eip.adoc[Idempotent Consumer]
+|Detect and discard duplicate messages based on a unique identifier.
+
+|Claim Check / Stash
+|xref:claimCheck-eip.adoc[Claim Check]
+|Temporarily store message data and retrieve it later to reduce payload size.
+|===
+
+== Connectivity
+
+[width="100%",cols="20%,30%,50%"]
+|===
+|Term |Camel EIP |Description
+
+|Source / Ingress
+|xref:from-eip.adoc[From]
+|Define the input endpoint that feeds messages into a route.
+
+|Sink / Egress
+|xref:to-eip.adoc[To], xref:toD-eip.adoc[To D]
+|Send messages to a fixed or dynamically computed endpoint.
+
+|Connector / Adapter
+|xref:channel-adapter.adoc[Channel Adapter]
+|Connect an application to a messaging system.
+
+|Webhook / Event-Driven
+|xref:eventDrivenConsumer-eip.adoc[Event Driven Consumer]
+|React to messages as they arrive without polling.
+
+|Gateway
+|xref:messaging-gateway.adoc[Messaging Gateway]
+|Encapsulate access to the messaging system behind a clean interface.
+
+|Wire Tap / Tap / Observe
+|xref:wireTap-eip.adoc[Wire Tap]
+|Send a copy of the message to a secondary destination for monitoring.
+|===
+
+== AI and Agent Integration
+
+[width="100%",cols="20%,30%,50%"]
+|===
+|Term |Camel Component / EIP |Description
+
+|Agent-to-Agent / A2A
+|xref:ROOT:a2a-component.adoc[A2A]
+|Google's Agent-to-Agent protocol for communication between AI agents.
+
+|Tokenize / Chunk (for LLM)
+|xref:ROOT:langchain4j-tokenizer.adoc[LangChain4j Tokenizer]
+|Split text into tokens or chunks sized for LLM context windows, using LangChain4j tokenizer strategies.
+|===
diff --git a/core/camel-core-engine/src/main/docs/modules/eips/pages/enterprise-integration-patterns.adoc b/core/camel-core-engine/src/main/docs/modules/eips/pages/enterprise-integration-patterns.adoc
index 66cf7ce31e6d..819428ae457c 100644
--- a/core/camel-core-engine/src/main/docs/modules/eips/pages/enterprise-integration-patterns.adoc
+++ b/core/camel-core-engine/src/main/docs/modules/eips/pages/enterprise-integration-patterns.adoc
@@ -7,6 +7,10 @@ Camel supports most of the
http://www.eaipatterns.com/toc.html[Enterprise Integration Patterns]
from the excellent book by Gregor Hohpe and Bobby Woolf.
+TIP: If you come from an AI, data engineering, or modern distributed systems background,
+see xref:ai-patterns.adoc[AI Patterns] for a mapping of common terms
+like fan-out, scatter-gather, and retry to the corresponding Camel EIPs.
+
== Messaging Systems
[width="100%",cols="10%,10%,80%",]
diff --git a/docs/eips-nav.adoc.template b/docs/eips-nav.adoc.template
index 0ba5b6dd6a0d..7139a7d9a773 100644
--- a/docs/eips-nav.adoc.template
+++ b/docs/eips-nav.adoc.template
@@ -1,5 +1,6 @@
<!-- generated:txt -->
<!-- endinject -->
* xref:eips:enterprise-integration-patterns.adoc[Enterprise Integration Patterns]
+* xref:eips:ai-patterns.adoc[AI Patterns]
<!-- inject:adoc -->
<!-- endinject -->
diff --git a/docs/main/modules/reference/pages/index.adoc b/docs/main/modules/reference/pages/index.adoc
index 23133e786abf..b00c4d6ee1d3 100644
--- a/docs/main/modules/reference/pages/index.adoc
+++ b/docs/main/modules/reference/pages/index.adoc
@@ -4,7 +4,8 @@
* xref:components::index.adoc[Components]
* xref:components:dataformats:index.adoc[Data Formats]
* xref:components:languages:index.adoc[Languages]
-* xref:components:eips:enterprise-integration-patterns.adoc[EIPs]
+* xref:components:eips:enterprise-integration-patterns.adoc[EIP Patterns]
+* xref:components:eips:ai-patterns.adoc[AI Patterns]
* xref:manual::examples.adoc[Examples]
* https://www.javadoc.io/doc/org.apache.camel/camel-api/latest/index.html[API Documentation] for the latest version
diff --git a/docs/user-manual/modules/ROOT/pages/index.adoc b/docs/user-manual/modules/ROOT/pages/index.adoc
index 888cf66607f6..1601cc1b1bab 100644
--- a/docs/user-manual/modules/ROOT/pages/index.adoc
+++ b/docs/user-manual/modules/ROOT/pages/index.adoc
@@ -31,7 +31,8 @@ For a deeper and better understanding of Apache Camel, an xref:faq:what-is-camel
* link:/community/books/[Books]
* xref:examples.adoc[Examples]
* xref:architecture.adoc[Architecture]
-* xref:components:eips:enterprise-integration-patterns.adoc[Enterprise Integration Patterns]
+* xref:components:eips:enterprise-integration-patterns.adoc[EIP Patterns]
+* xref:components:eips:ai-patterns.adoc[AI Patterns]
* xref:component-dsl.adoc[Component DSL]
* xref:Endpoint-dsl.adoc[Endpoint DSL]
* xref:dataformat-dsl.adoc[DataFormat DSL]
diff --git a/docs/user-manual/modules/ROOT/references.adoc b/docs/user-manual/modules/ROOT/references.adoc
index ee11dbf81434..b94d9df3c84e 100644
--- a/docs/user-manual/modules/ROOT/references.adoc
+++ b/docs/user-manual/modules/ROOT/references.adoc
@@ -2,4 +2,5 @@
** xref:components::index.adoc[Components]
** xref:components:dataformats:index.adoc[Data Formats]
** xref:components:languages:index.adoc[Languages]
-** xref:components:eips:enterprise-integration-patterns.adoc[EIPs]
+** xref:components:eips:enterprise-integration-patterns.adoc[EIP Patterns]
+** xref:components:eips:ai-patterns.adoc[AI Patterns]