Red Hat build of Apache Camel

Agile, distributed, containerized, and API-centric solution to integrate applications by transforming data, composing and orchestrating services across hybrid infrastructures.

Apache Camel in Enterprise Integration

When solving integration scenarios, there are two possible ways forward. The first way is to adopt an integration tool to assist developers. Doing so means understanding the benefits of such technologies to effectively address well-known Enterprise Integration Patterns (or EIPs). The second way is giving developers the freedom to code their own custom-made solution.

An integration toolkit, like Apache Camel, is most recommended when having to create and sustain many projects within a team or organization. It allows defining a common methodology across all projects, preventing a disparity of general-purpose languages and coding styles that brings fragmentation and costly maintenance.

Apache Camel in Enterprise Integration

What are Enterprise Integration Patterns?

enterprise integration pattern

The world keeps accelerating. New processes are connected everyday to integrate and interact with existing digital products and services. In a nutshell, information makes a journey from sources to destinations, following data flows that traverse a landscape of distributed systems.

This journey varies from case to case, but over time, experience has shown they can mostly be framed into recognizable Enterprise Integration Patterns (or EIPs).

Applying Enterprise Integration Patterns help developers navigate the challenges of integrating systems without having to reinvent the wheel.

What is Apache Camel?

Apache Camel is an open source integration framework that implements EIPs with mature and robust ready-to-use building blocks, enabling developers to rapidly create data flows and easily test and maintain them.

Here is an example of a typical integration pattern:

  • How do you process messages that are semantically equivalent, but arrive in a different format? 
 
code block big
camel logo

Let's use a Normalizer to route each message type through a custom Message Translator so that the resulting messages match a common format. The Normalizer uses a Message Router to route the incoming message to the correct Message Translator.

 

Integration capabilities and components

Red Hat Integration is a suite of runtimes, frameworks, and services for building applications natively on Red Hat OpenShift. This suite is defined by five major capabilities: API management, enterprise integration, events and messaging, data integration, and tooling and metadata. These capabilities and their underlying components simplify cloud-native development that connects systems.

 

Core Capabilities

Groups of runtimes, frameworks, and services for building microservice architures on top of Red Hat OpenShift. These capabilities and their underlying components simplify the development of cloud-native services to expose and interconnect.

patterns

Patterns

Solve integration problem by applying best practices out of the box. Even with microservice architectures. Camel supports most of the EIPs from the excellent book by Gregor Hohpe and Bobby Woolf.

patterns

100+ Connectors

Packed with 100+ connectors (known as components) such as databases, message queues, APIs.

patterns

Data Formats

Translate messages in multiple formats, and industry standard formats from finance, telco, health-care, and more.

Lightweight Runtimes

Lightweight Runtimes

 Quarkus, Standalone, Spring Boot,Application Servers, and natively on Cloud.

API

Ecosystem

Groups of runtimes, frameworks, and services for building microservice architures on top of Red Hat OpenShift. These capabilities and their underlying components simplify the development of cloud-native services to expose and interconnect.

DDSL

DSLs

Define processes with simple, self-explained Domain Specific Language. Available in Java, YAML, XML.

Reactive Routing Engine

Reactive Routing Engine

 Back pressure model. Smooth flow control. Better thread management.

Testing Framework

Testing Framework

Set of extensions and APIs to set up a testing harness and inner/outer evaluations to test your Camel applications by sending messages to routes and validating expectations.

Observability

Observability

Capturing a trace inside and between Camel route. For better observibility.

Tooling

Tooling

Support autocomplete, correction on multiple IDE with LSP Server, fast prototyping with Camel JBang, scaffolding.

 

Use Cases

Apache Camel is very versatile and easily fits into most scenarios where data moves from sources to destinations. Find below a number of popular use cases where Apache Camel is the technology of choice.

API-Driven processing

API-Driven processing

APIs are a best practice for integrating distributed systems. They expose simple operations client systems can easily consume. Apache Camel is designed with core capabilities to support both api-first or code-first approaches in a range of different protocols and specifications. 

Related content

API-Driven processing
Event-Driven processing

Event-Driven processing

Easily supercharge your processes by connecting event-based sources. The default consumer model in Apache Camel is event based (i.e. asynchronous) as this means that the Camel container can then manage pooling, threading and concurrency for you in a declarative manner.

Related content

Event driven processing
Data Mapping and Transformation

Data Mapping and Transformation

Pick one or more of Camel's transformation strategies to convert APIs, data formats and protocols. Apache Camel provides components such as data mappers, transformation stylesheets, templates, automatic data convertors, type converters, user defined endpoints, expression languages, custom processors and more.

Related content

Data Mapping and Transformation
Service Composition

Service Composition

Combine a collection of services together into a larger service. Using Camel's pattern-based integration, define business functions by gathering data from multiple endpoints. Compositions typically resolve non-trivial or complex integrations.

Related content

Service Composition

More use cases

Find below some more advanced use cases where Apache Camel also excels in providing the needed functionality.

Large upload/download transfers

Large upload/download transfers

Exploit Camel’s streaming ability to transfer large byte streams. Send documents over HTTP to multiple endpoints or cloud services. Select & discard, multiplex and transform, merge streams, Camel handles raw byte streams, image, video, documents, data structures, with high performance and very low memory usage.

Large upload/download transfers

 

 

ml

 

 

Data Ingestion for AI/ML

Use the rich palette of Camel connectors to ingest data from various sources. Validate and transform raw data into AI consumable information and route it to data lakes, databases, and S3 buckets.

Data Ingestion for AI:ML

 

IoT Edge Framework.png (10.65 KB)

 

IoT edge framework

Move sensor data and events from the operational/site edge towards core platforms. Camel’s asynchronous components and EIPs provide great support for intermittent connectivity characteristic of remote devices with poor signal coverage.

IoT edge framework