Cameleer

Cameleer / Use cases

Tested routes, not slideware

What people run on Cameleer

Every use case below has a route in the repository that the test suite runs end to end, against embedded brokers and mock APIs. Each page names the components, shows the route, and gives the exact Docker command. Same Camel YAML, one native binary.

Use cases with their own page

Tools for AI agents

An agent calls one tool; a route validates the arguments against a JSON schema, runs each step once, retries the flaky API, rolls back with a saga, parks risky actions for a person and writes the audit line.

Shipped: tools over REST. Planned: MCP tool server (on the roadmap).

examples/agents/ · 8 routes

Healthcare: HL7 v2 over MLLP, FHIR

Receive ADT and lab messages over MLLP, read fields with HL7 terser paths, post to the EHR or a FHIR server, and acknowledge only after delivery so the sender resends on failure.

mllp · hl7 · hl7terser · fhir

MQTT and IoT edge gateways

Subscribe to sensors, validate and aggregate on site, buffer to disk when the uplink is down and replay later, bridge syslog into Kafka, publish presence with a last will. About 10 MB of memory, arm64 image.

paho · paho-mqtt5 · syslog · kafka · file

Serverless: AWS Lambda, Cloud Run

The binary is its own Lambda runtime: API Gateway, function URL and ALB events reach your platform-http routes, other events a handler route. Cloud Run, Knative and Azure Container Apps run the image as it is.

provided.al2023 · platform-http · build features

File, FTP and SFTP pipelines

Poll folders and remote servers, parse CSV and fixed-width records, split, validate, deduplicate, load into PostgreSQL or S3, and move each file to done or failed. Twice Apache Camel's throughput on CSV batches.

file · ftp · ftps · sftp · csv · bindy · aws2-s3 · sql

Camel routes off the JVM

YAML and XML routes, URIs, EIPs, Simple, headers and error handling carry over unchanged. A checklist for Java beans and processors, and the known deviations, on one page.

guide · compare page · 450x startup, up to 54x memory

More use cases, from the same parts

Each of these is built from components and patterns that ship today. The links go to the component page or the tested example.

LLM pipelines and RAG ingestion

Classify and route on a model's answer with a fixed label set; map-reduce summaries; chunk, embed and index documents in Elasticsearch, OpenSearch or pgvector; validate model JSON against a schema and re-ask once; throttle, circuit-break and fail over between models.

openai · aws-bedrock · azure-openai · google-vertexai · json-validator

SaaS webhooks to chat and tickets

An HTTP endpoint takes monitoring alerts and keeps the critical ones for Slack; the webhook component registers itself with GitHub or Telegram; github polls pull requests and issues; jira, twilio and smtp act on the result.

platform-http · webhook · slack · github · jira · telegram · twilio

Change data capture

React to every insert, update and delete from DynamoDB Streams, MongoDB change streams and the Cosmos DB change feed, or poll a table as a work queue with the sql consumer and onConsume. No Debezium-style log reader for PostgreSQL yet.

aws2-ddbstream · mongodb · azure-cosmosdb · sql

Scheduled jobs

Start a route on a cron expression in a time zone, on Quartz trigger syntax, or with a scheduler that backs off when idle; stop after a run with camel.main.duration-max-messages, or run it as a Lambda on an EventBridge schedule.

cron · quartz · scheduler · timer

REST APIs and backends for frontends

The REST DSL with JSON binding, path and query parameters, CORS and a generated OpenAPI 3 document; enrich and multicast to call several services and aggregate one answer; throttle and circuit breaker in front of slow dependencies. 80k requests per second with JSON on four cores.

rest · platform-http · http · json-validator

Human approval of risky actions

Actions under a limit run at once; larger ones are parked as a file and a person gets a Slack message with an approval link. The approval route picks the action up with pollEnrich, so it runs at most once even when the link is clicked twice.

rest · file · slack · pollEnrich

Run one

Every example file starts with the environment variables it needs and its Docker command. Validate first, then run.

git clone https://github.com/pmsudhi/cameleer && cd cameleer/examples
docker run --rm -v "$PWD:/routes:ro" pmsudhi/cameleer validate /routes
docker run --rm -p 8080:8080 -v "$PWD:/routes:ro" pmsudhi/cameleer run /routes/hello-api.camel.yaml