Apache Camel Presentation
Apache Camel Presentation
1
Enterprise Integrations are Complex
Enterprises have 100's of applications:
Complex communication patterns
Variety of transports - HTTP, Queues etc
Variety of protocols - HTTP, JMS, AMQP
Evolution of Cloud and Microservices makes
Enterprise Integration even more complex
How can we simplify Enterprise Integrations?
Follow Enterprise Integration Patterns
How to implement Enterprise Integration
Patterns?
Use Apache Camel
2
Apache Camel
Open Source Enterprise Integration framework
Easily integrate systems consuming or producing data
Inspired by "Enterprise Integration Patterns" -
Gregor Hohpe and Bobby Woolf
Evolved to Microservice Architectures and Cloud
Lean - Lightweight and Extensible:
Component architecture keeps footprint low
Provides 100+ components for databases, message queues,
APIs, cloud integration etc
Supports 200+ protocols, transports and data formats (& 300+
converters)
Provides Domain Specific Language (DSL) customized to suit
needs of Application Integration
3
Camel - Terminology
Important Terminology:
Camel Context - (0..n) Routes + Components + ..
Endpoint - Reference to a queue, database or a file
Route - Endpoints + Processor(s) + Transformer(s)
Components - Extensions (Kafka, JSON, JMS etc)
Transformation:
Data format transformation - XML to JSON
Data type transformation - String to CurrencyConversionBean
Message - Body + Headers + Attachments
Exchange - Request + Response
Exchange ID
Message Exchange Pattern (MEP) - InOnly/InOut
Input Message and (Optional) Output Message
4
Camel - Architecture
5
Camel Context Example
//To start with
CamelContext camelContext = new DefaultCamelContext();
camelContext.addRoutes(new Route1());
camelContext.addRoutes(new Route2());
camelContext.addComponent("xyz",
XyzComponent.xyzComponentAutoAcknowledge(connectionFactory));
camelContext.start();
6
References
Topic Reference
Why Camel? https://camel.apache.org/manual/latest/faq/why-the-name-camel.html
7
What Next?
https://github.com/in28minutes/learn
Certifications
AWS, Azure and GCP
DevOps
Docker, Kubernetes, Azure DevOps, Terraform and Ansible
Serverless (AWS Lambda and Azure Functions)
Full Stack (with Angular and React)
Microservices (Spring Boot and Spring Cloud)
8