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 routesHealthcare: 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 · fhirMQTT 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 · fileServerless: 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.
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 · sqlCamel 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 memoryMore 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-validatorSaaS 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.
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.
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.
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.
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.
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