<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Otavio Rodolfo Piske</title>
    <description>The latest articles on DEV Community by Otavio Rodolfo Piske (@orpiske).</description>
    <link>https://dev.to/orpiske</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F522355%2F17888c6d-eff4-430f-b471-8f50ee6b8a36.jpeg</url>
      <title>DEV Community: Otavio Rodolfo Piske</title>
      <link>https://dev.to/orpiske</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/orpiske"/>
    <language>en</language>
    <item>
      <title>Wanaku 0.1.1: Bringing Apache Camel Integration Capabilities to AI Agents via MCP</title>
      <dc:creator>Otavio Rodolfo Piske</dc:creator>
      <pubDate>Thu, 11 Jun 2026 20:45:53 +0000</pubDate>
      <link>https://dev.to/orpiske/wanaku-011-bringing-apache-camel-integration-capabilities-to-ai-agents-via-mcp-1od5</link>
      <guid>https://dev.to/orpiske/wanaku-011-bringing-apache-camel-integration-capabilities-to-ai-agents-via-mcp-1od5</guid>
      <description>&lt;p&gt;We're excited to announce &lt;a href="http://wanaku.ai" rel="noopener noreferrer"&gt;Wanaku&lt;/a&gt; 0.1.1, a significant milestone that showcases how Apache Camel's powerful integration capabilities can be seamlessly exposed to AI agents through the Model Context Protocol (MCP). This release introduces &lt;strong&gt;Service Catalogs&lt;/strong&gt; and &lt;strong&gt;Service Templates&lt;/strong&gt; — features that leverage Apache Camel as the integration runtime to bridge the gap between AI and enterprise systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Wanaku?
&lt;/h2&gt;

&lt;p&gt;Wanaku is an open-source MCP router and capability management platform that acts as a smart intermediary between AI agents and integration capabilities. Think of it as a gateway that allows AI systems to discover and invoke enterprise integrations as if they were native tools, all through a unified MCP interface.&lt;/p&gt;

&lt;p&gt;While Wanaku is runtime-agnostic in design, &lt;strong&gt;Apache Camel is the native and first-class integration runtime&lt;/strong&gt;, providing the robust, battle-tested foundation for connecting AI agents to hundreds of enterprise systems, protocols, and data formats.&lt;/p&gt;

&lt;p&gt;Getting started is a single command. After &lt;a href="https://github.com/wanaku-ai/wanaku/releases/tag/wanaku-0.1.3" rel="noopener noreferrer"&gt;downloading the CLI&lt;/a&gt;, just run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wanaku start &lt;span class="nb"&gt;local&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This launches the Wanaku router and admin UI on your machine — no containers, no cloud accounts, no configuration files. You're ready to create and deploy Service Catalogs in seconds.&lt;/p&gt;

&lt;h2&gt;
  
  
  Service Catalogs: Packaging Camel Routes as AI Tools
&lt;/h2&gt;

&lt;p&gt;At the heart of Wanaku 0.1.1 is the &lt;strong&gt;Service Catalog&lt;/strong&gt; concept — a way to bundle Apache Camel routes, MCP tool definitions, and dependencies into a single deployable package. This brings several Apache Camel strengths directly to AI agents:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Camel routes&lt;/strong&gt; define integration logic using YAML-based route definitions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wanaku rules&lt;/strong&gt; map route IDs to MCP tool definitions, adding the metadata AI agents need to discover and invoke each route&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maven dependencies&lt;/strong&gt; declare required Camel components and libraries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here's what a Service Catalog looks like, using a book search example that calls the free Open Library API:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;demo-catalog/
├── index.properties              # Catalog manifest
└── books/
    ├── books.camel.yaml           # Camel routes
    ├── books.wanaku-rules.yaml    # MCP tool definitions
    └── books.dependencies.txt     # Camel component dependencies
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  The Apache Camel Foundation
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;books.camel.yaml&lt;/code&gt; file contains standard Apache Camel route definitions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;route&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;get-book-by-isbn&lt;/span&gt;
    &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Retrieve book information by ISBN&lt;/span&gt;
    &lt;span class="na"&gt;from&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;uri&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;direct:get-by-isbn&lt;/span&gt;
      &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;setHeader&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;CamelHttpMethod&lt;/span&gt;
            &lt;span class="na"&gt;constant&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;GET&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;log&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Fetching&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;book&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;with&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;ISBN:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;${body}"&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;toD&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="na"&gt;uri&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://openlibrary.org/api/books?bibkeys=ISBN:${body}&amp;amp;format=json&amp;amp;jscmd=data"&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;convertBodyTo&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;String&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;log&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Book&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;data&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;received:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;${body}"&lt;/span&gt;

&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;route&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;search-books&lt;/span&gt;
    &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Search for books by title&lt;/span&gt;
    &lt;span class="na"&gt;from&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;uri&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;direct:search-books&lt;/span&gt;
      &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;setHeader&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;CamelHttpMethod&lt;/span&gt;
            &lt;span class="na"&gt;constant&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;GET&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;log&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Searching&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;for&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;books&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;with&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;query:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;${body}"&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;toD&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="na"&gt;uri&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://openlibrary.org/search.json?q=${body}&amp;amp;limit=5"&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;convertBodyTo&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;String&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;log&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Search&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;results&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;received:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;${body}"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is pure Camel — nothing AI-specific here. The routes leverage Camel's &lt;code&gt;direct&lt;/code&gt; component for triggering and the &lt;code&gt;http&lt;/code&gt; component for external API calls. The beauty is that &lt;strong&gt;most Camel routes can become AI tools&lt;/strong&gt; with minimal modification — typically just exposing a &lt;code&gt;direct:&lt;/code&gt; endpoint and adding a wanaku-rules mapping.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; You can use a visual editor such as &lt;a href="https://kaoto.io" rel="noopener noreferrer"&gt;Kaoto&lt;/a&gt; or &lt;a href="https://github.com/apache/camel-karavan" rel="noopener noreferrer"&gt;Camel Karavan&lt;/a&gt; to design and edit Camel routes, rather than hand-editing YAML.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  From Route ID to AI Tool
&lt;/h3&gt;

&lt;p&gt;Wanaku's CLI generates MCP tool definitions from route IDs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wanaku service expose &lt;span class="nt"&gt;--path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;demo-catalog
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This scans each Camel route file and generates a corresponding &lt;code&gt;wanaku-rules.yaml&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Auto-generated Wanaku rules for books&lt;/span&gt;
&lt;span class="c1"&gt;# Generated by 'wanaku service expose'&lt;/span&gt;
&lt;span class="na"&gt;mcp&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;tools&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;get-book-by-isbn&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;route&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;get-book-by-isbn"&lt;/span&gt;
        &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Invoke&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;route&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;get-book-by-isbn&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;in&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;books"&lt;/span&gt;
        &lt;span class="na"&gt;properties&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;wanaku_body&lt;/span&gt;
            &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;string&lt;/span&gt;
            &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;The greeting message to send&lt;/span&gt;
            &lt;span class="na"&gt;required&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;search-books&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;route&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;search-books"&lt;/span&gt;
        &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Invoke&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;route&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;search-books&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;in&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;books"&lt;/span&gt;
        &lt;span class="na"&gt;properties&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;wanaku_body&lt;/span&gt;
            &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;string&lt;/span&gt;
            &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;The greeting message to send&lt;/span&gt;
            &lt;span class="na"&gt;required&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Notice the &lt;code&gt;wanaku_body&lt;/code&gt; property in each tool definition — this is a special argument that tells Wanaku to place the AI agent's input directly into the body of the Camel data exchange, rather than passing it as a parameter or header. This is what allows the routes above to reference &lt;code&gt;${body}&lt;/code&gt; in their &lt;code&gt;toD&lt;/code&gt; URIs and log messages.&lt;/p&gt;

&lt;p&gt;AI agents can now discover &lt;code&gt;get-book-by-isbn&lt;/code&gt; and &lt;code&gt;search-books&lt;/code&gt; as available tools and invoke them through the MCP protocol. Under the hood, Wanaku routes each request to the corresponding Camel &lt;code&gt;direct:&lt;/code&gt; endpoint, executes the route, and returns the result.&lt;/p&gt;

&lt;h3&gt;
  
  
  Leveraging Camel's Component Ecosystem
&lt;/h3&gt;

&lt;p&gt;One of Apache Camel's greatest strengths is its &lt;strong&gt;400+ components&lt;/strong&gt; covering everything from HTTP and databases to messaging systems, cloud services, and IoT protocols. Service Catalogs make this entire ecosystem available to AI agents.&lt;/p&gt;

&lt;p&gt;For example, the book search catalog declares its dependencies in &lt;code&gt;books.dependencies.txt&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;org.apache.camel:camel-http:4.18.2
org.apache.camel:camel-jackson:4.18.2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This declarative approach means that as soon as you deploy the catalog, Wanaku ensures the necessary Camel components are available at runtime. AI agents get instant access to HTTP clients, JSON transformations, and more — all powered by Camel.&lt;/p&gt;

&lt;h2&gt;
  
  
  Service Templates: Parameterized Camel Integrations
&lt;/h2&gt;

&lt;p&gt;Building on Service Catalogs, &lt;strong&gt;Service Templates&lt;/strong&gt; introduce parameterization using &lt;strong&gt;Camel Property Placeholders&lt;/strong&gt;. This allows you to create reusable integration blueprints that users can customize without touching YAML or Java code.&lt;/p&gt;

&lt;h3&gt;
  
  
  How It Works: Camel Property Placeholders
&lt;/h3&gt;

&lt;p&gt;Service Templates use Camel's native &lt;code&gt;{{property}}&lt;/code&gt; syntax to mark configurable values. For example, here's a Kafka template that sets up request/reply messaging:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;kafka/service.properties:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight properties"&gt;&lt;code&gt;&lt;span class="py"&gt;kafka.brokers&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;{{kafka.brokers}}&lt;/span&gt;
&lt;span class="py"&gt;kafka.request.topic&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;{{kafka.request.topic}}&lt;/span&gt;
&lt;span class="py"&gt;kafka.response.topic&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;{{kafka.response.topic}}&lt;/span&gt;
&lt;span class="py"&gt;kafka.reply.timeout-ms&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;{{kafka.reply.timeout-ms}}&lt;/span&gt;
&lt;span class="py"&gt;kafka.response.group-id&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;{{kafka.response.group-id}}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;kafka/kafka.camel.yaml:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;route&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;kafka-request-reply&lt;/span&gt;
    &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Send a Kafka request and wait for the correlated reply&lt;/span&gt;
    &lt;span class="na"&gt;from&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;uri&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;direct:wanaku&lt;/span&gt;
      &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;to&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="na"&gt;uri&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;kafka:{{kafka.request.topic}}&lt;/span&gt;
            &lt;span class="na"&gt;parameters&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
              &lt;span class="na"&gt;brokers&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;{{kafka.brokers}}"&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;pollEnrich&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="na"&gt;timeout&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;{{kafka.reply.timeout-ms}}"&lt;/span&gt;
            &lt;span class="na"&gt;expression&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
              &lt;span class="na"&gt;simple&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
                &lt;span class="na"&gt;expression&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;seda:kafka-replies"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When a user instantiates this template, Wanaku generates a ready-to-deploy Service Catalog and works with Apache Camel to substitutes those placeholders. The resulting Camel routes are fully functional — no manual editing required. Users can browse and instantiate templates via the Service Catalog page in the Wanaku Admin UI.&lt;/p&gt;

&lt;h3&gt;
  
  
  Built-in Templates for Common Integrations
&lt;/h3&gt;

&lt;p&gt;Wanaku 0.1.1 ships with several built-in Service Templates that showcase Apache Camel's versatility:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;kafka-tool&lt;/strong&gt; — Request/reply messaging with manual correlation using &lt;code&gt;camel-kafka&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;jms-tool&lt;/strong&gt; — ActiveMQ Artemis messaging with &lt;code&gt;camel-jms&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;github-pullrequest-source-tool&lt;/strong&gt; — Fetch GitHub PR data using &lt;code&gt;camel-http&lt;/code&gt; and REST APIs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;jira-add-comment-tool, jira-add-issue-tool, jira-update-issue-tool&lt;/strong&gt; — Jira integration using &lt;code&gt;camel-jira&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;mail-sink-tool&lt;/strong&gt; — Send emails via SMTP using &lt;code&gt;camel-mail&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;rabbitmq-tool&lt;/strong&gt; — RabbitMQ messaging with &lt;code&gt;camel-rabbitmq&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;telegram-sink-tool&lt;/strong&gt; — Send Telegram messages using &lt;code&gt;camel-telegram&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ftp-resource, sftp-resource&lt;/strong&gt; — File transfer with &lt;code&gt;camel-ftp&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;aws-s3-resource, azure-files-resource&lt;/strong&gt; — Cloud storage access with &lt;code&gt;camel-aws-s3&lt;/code&gt; and &lt;code&gt;camel-azure-files&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each template demonstrates how Camel components handle the heavy lifting — protocol handling, connection management, error recovery — while Wanaku exposes the result as a clean, AI-friendly tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Camel Integration Capability
&lt;/h2&gt;

&lt;p&gt;Service Catalogs and Templates provide a declarative way to package Camel routes, but something needs to actually &lt;em&gt;run&lt;/em&gt; them. That's the &lt;strong&gt;Camel Integration Capability&lt;/strong&gt; — a standalone runtime service that dynamically loads and executes Camel routes on behalf of AI agents.&lt;/p&gt;

&lt;p&gt;This capability:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Accepts Camel route YAML files deployed via the Wanaku CLI, REST API, or Kubernetes operator&lt;/li&gt;
&lt;li&gt;Loads the routes into a Camel context&lt;/li&gt;
&lt;li&gt;Exposes route IDs as MCP tools&lt;/li&gt;
&lt;li&gt;Handles route lifecycle (start, stop, update)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Camel Integration Capability is a plain Java application built using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Apache Camel Main&lt;/strong&gt; — for lightweight, standalone Camel route execution&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wanaku Capabilities Java SDK&lt;/strong&gt; — for MCP protocol integration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After deploying a Service Catalog, you start the capability service separately:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;java &lt;span class="nt"&gt;-jar&lt;/span&gt; camel-integration-capability-main-0.1.1-jar-with-dependencies.jar &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--registration-url&lt;/span&gt; http://localhost:8080 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--registration-announce-address&lt;/span&gt; localhost &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--grpc-port&lt;/span&gt; 9190 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--name&lt;/span&gt; books &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--client-id&lt;/span&gt; wanaku-service &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--service-catalog&lt;/span&gt; demo-catalog &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--service-catalog-system&lt;/span&gt; books &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--fail-fast&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The capability service registers with the Wanaku router and the tools become available to AI agents within seconds. Download the JAR from the &lt;a href="https://github.com/wanaku-ai/camel-integration-capability/releases/tag/v0.1.1" rel="noopener noreferrer"&gt;Camel Integration Capability releases page&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  CLI Workflow: From Init to Deploy
&lt;/h2&gt;

&lt;p&gt;With Wanaku running locally, the workflow for building a Service Catalog is straightforward:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Step 1: Initialize a new service catalog&lt;/span&gt;
wanaku service init &lt;span class="nt"&gt;--name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;demo-catalog &lt;span class="nt"&gt;--services&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;books

&lt;span class="c"&gt;# Step 2: Edit the Camel routes (books/books.camel.yaml)&lt;/span&gt;
&lt;span class="c"&gt;# Define your integration logic using Camel YAML DSL&lt;/span&gt;

&lt;span class="c"&gt;# Step 3: Add dependencies (books/books.dependencies.txt)&lt;/span&gt;
&lt;span class="c"&gt;# List the Camel components your routes need&lt;/span&gt;

&lt;span class="c"&gt;# Step 4: Generate MCP tool definitions from route IDs&lt;/span&gt;
wanaku service expose &lt;span class="nt"&gt;--path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;demo-catalog

&lt;span class="c"&gt;# Step 5: Deploy to the Wanaku router&lt;/span&gt;
wanaku service deploy &lt;span class="nt"&gt;--path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;demo-catalog &lt;span class="nt"&gt;--host&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;http://localhost:8080

&lt;span class="c"&gt;# Step 6: Start the Camel Integration Capability to run the routes&lt;/span&gt;
&lt;span class="c"&gt;# (see section above for the full command)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For Service Templates, you can also package and deploy reusable blueprints:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Package a template into a ZIP archive&lt;/span&gt;
wanaku service package &lt;span class="nt"&gt;--path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;weather-template &lt;span class="nt"&gt;-o&lt;/span&gt; weather-template.zip

&lt;span class="c"&gt;# Deploy the template to the router&lt;/span&gt;
wanaku service template deploy &lt;span class="nt"&gt;--file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;weather-template.zip &lt;span class="nt"&gt;--host&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;http://localhost:8080
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This workflow mirrors the familiar Camel development experience — define routes, package, deploy — but with MCP tooling baked in.&lt;/p&gt;

&lt;h3&gt;
  
  
  Testing Your Tools
&lt;/h3&gt;

&lt;p&gt;Once deployed, you can verify your tools are registered:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wanaku tools list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see output like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name             namespace type  uri                      labels
get-book-by-isbn default   books books://get-book-by-isbn {}
search-books     default   books books://search-books     {}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use the &lt;a href="https://github.com/modelcontextprotocol/inspector" rel="noopener noreferrer"&gt;MCP Inspector&lt;/a&gt; to test your tools interactively:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx @modelcontextprotocol/inspector
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Kubernetes-Native Deployment
&lt;/h2&gt;

&lt;p&gt;Service Catalogs are environment-agnostic: deploy locally via &lt;code&gt;wanaku service deploy&lt;/code&gt; or to Kubernetes via the operator and CRDs.&lt;/p&gt;

&lt;p&gt;For production use, Wanaku includes a &lt;strong&gt;Kubernetes Operator&lt;/strong&gt;  that manages Service Catalogs declaratively:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;apiVersion&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;wanaku.ai/v1alpha1"&lt;/span&gt;
&lt;span class="na"&gt;kind&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;WanakuServiceCatalog&lt;/span&gt;
&lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;my-service-catalogs&lt;/span&gt;
&lt;span class="na"&gt;spec&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;routerRef&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;wanaku-dev&lt;/span&gt;
  &lt;span class="na"&gt;catalogs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;demo-catalog&lt;/span&gt;
      &lt;span class="na"&gt;configMapRef&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;demo-catalog-data&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The operator reads the ConfigMap containing the packaged Service Catalog and deploys it to the router automatically. This approach aligns with GitOps practices and integrates seamlessly with existing Kubernetes workflows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Service Catalogs and Templates Matter
&lt;/h2&gt;

&lt;p&gt;Before Wanaku 0.1.1, exposing a Camel route to an AI agent required custom REST API wrappers, manual MCP tool definitions, dependency management, and container orchestration. Service Catalogs collapse this into a single &lt;code&gt;wanaku service init&lt;/code&gt; + &lt;code&gt;wanaku service deploy&lt;/code&gt; workflow. Service Templates go further — turning a Kafka integration that would take hundreds of lines of boilerplate into a five-property form.&lt;/p&gt;

&lt;p&gt;This unlocks the full power of Apache Camel for AI agents:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Camel's Integration Patterns&lt;/strong&gt; — Enterprise Integration Patterns (EIPs), content-based routing, data transformation, error handling — all become accessible to AI agents without custom API wrappers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Protocol Diversity&lt;/strong&gt; — AI agents can interact with systems that don't expose modern REST APIs. Need to query an AS/400 via JT400? Poll an FTP server? Consume from a legacy JMS queue? Camel handles it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Data Format Flexibility&lt;/strong&gt; — Camel's type converters and data formats (Jackson, JAXB, CSV, Avro) mean AI agents can consume and produce data in the formats enterprise systems expect.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Error Handling &amp;amp; Resilience&lt;/strong&gt; — Camel's error handlers, retry policies, and dead letter channels ensure robust integrations even when AI agents interact with flaky external systems.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Observability&lt;/strong&gt; — Camel's built-in metrics, logging, and tracing integrate with standard observability stacks (Prometheus, Grafana, Jaeger), making it easy to monitor AI-driven integrations.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;Try Wanaku 0.1.1 today:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Download the CLI:&lt;/strong&gt; &lt;a href="https://github.com/wanaku-ai/wanaku/releases/" rel="noopener noreferrer"&gt;https://github.com/wanaku-ai/wanaku/releases/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Learn Wanaku from the ground up:&lt;/strong&gt; &lt;a href="https://wanaku.ai/docs/demos/" rel="noopener noreferrer"&gt;https://wanaku.ai/docs/demos/&lt;/a&gt; — step-by-step guides that take you from local experimentation all the way to production deployment on the cloud

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://wanaku.ai/docs/demos/wanaku-demos-current/2.02-service-catalogs/README.html" rel="noopener noreferrer"&gt;Demo 2.02 — Service Catalogs&lt;/a&gt;: Build and deploy a book search catalog step by step&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://wanaku.ai/docs/demos/wanaku-demos-current/2.03-service-templates/README.html" rel="noopener noreferrer"&gt;Demo 2.03 — Service Templates&lt;/a&gt;: Create and instantiate reusable integration blueprints&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Read the Service Catalogs Guide:&lt;/strong&gt; &lt;a href="https://wanaku.ai/docs/version/wanaku-current/docs/service-catalogs.html" rel="noopener noreferrer"&gt;Service Catalogs Documentation&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Read the Service Templates Guide:&lt;/strong&gt; &lt;a href="https://wanaku.ai/docs/version/wanaku-current/docs/service-templates.html" rel="noopener noreferrer"&gt;Service Templates Documentation&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;We're just getting started. Future releases will bring:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Simplified Camel Integration&lt;/strong&gt; — a &lt;code&gt;WanakuCamelRoute&lt;/code&gt; CRD that lets you deploy Camel routes directly on Kubernetes without manually packaging Service Catalogs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hosted Agent Builder&lt;/strong&gt; — a built-in UI and API for assembling AI agents from registered tools, selecting LLM providers, and deploying them — all from the Wanaku Admin UI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Embedded Kaoto designer&lt;/strong&gt; — visual Camel route editing directly in the admin UI, so you can design integration routes without leaving the browser&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code Execution Engine on Kubernetes&lt;/strong&gt; — operator support for deploying the Camel Code Execution Engine alongside the router&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;More Service Templates&lt;/strong&gt; — pre-built templates for SQL databases, AWS SQS, vector search (Qdrant, Pinecone), LangChain4j AI services, and more&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Join the Community
&lt;/h2&gt;

&lt;p&gt;Wanaku is open source (Apache License 2.0) and built for the Apache Camel community. We'd love your feedback, contributions, and use cases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/wanaku-ai/wanaku" rel="noopener noreferrer"&gt;https://github.com/wanaku-ai/wanaku&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Issues:&lt;/strong&gt; &lt;a href="https://github.com/wanaku-ai/wanaku/issues" rel="noopener noreferrer"&gt;https://github.com/wanaku-ai/wanaku/issues&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By bringing Apache Camel's 20+ years of integration expertise to the AI agent ecosystem, we're making it easier than ever to connect AI to the real world — the messy, heterogeneous, protocol-diverse world that enterprises actually operate in.&lt;/p&gt;

&lt;p&gt;Happy integrating!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>mcp</category>
      <category>camel</category>
    </item>
    <item>
      <title>Ebook: Camel Passo a Passo</title>
      <dc:creator>Otavio Rodolfo Piske</dc:creator>
      <pubDate>Sat, 28 Nov 2020 16:02:49 +0000</pubDate>
      <link>https://dev.to/orpiske/ebook-camel-passo-a-passo-1gh1</link>
      <guid>https://dev.to/orpiske/ebook-camel-passo-a-passo-1gh1</guid>
      <description>&lt;p&gt;Começando meu primeiro post no dev.to para compartilhar o link de um ebook, em português, sobre &lt;a href="https://www.angusyoung.org/2020/11/28/ebook-gratis-camel-passo-a-passo/"&gt;integração de sistemas com Apache Camel&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>java</category>
      <category>portugues</category>
      <category>camel</category>
      <category>cloud</category>
    </item>
  </channel>
</rss>
