Red Hat build of Apache Camel

An 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 custom-made solutions.

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

Integration Integration essentials.

What are Enterprise Integration Patterns?

The world keeps accelerating. New processes are connected every day 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 helps developers navigate the challenges of integrating systems without having to reinvent the wheel.

What are Enterprise Integration Patterns?

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.

To the right is an example of a typical integration pattern. How do you process messages that are semantically equivalent, but arrive in a different format? 

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.

 

camel_product-page gif

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 architectures on top of Red Hat OpenShift. These capabilities and their underlying components simplify the development of cloud-native services to expose and interconnect.

Cryostat

Patterns

Solve integration problems 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.

Shared components

100+ Connectors

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

Long-term data retention

Data Formats

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

Learn OpenShift Virtualization: 7 training resources to help you to get started

Lightweight runtimes

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

Ecosystem

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

Connect your local database

Domain Specific Language (DSL)

Define processes with simple, self-explained DSL. Available in Java, YAML, and XML.

PubSubPlus

Reactive Routing Engine

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

Amazon Web Services (AWS)

Testing Framework

A 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.

Use OpenShift Data Foundation disaster recovery to protect VMs

Observability

Capturing a trace inside and between Camel routes. For better observability.

Migration Toolkit for Virtualization

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. Below, you will find a number of popular use cases in which Apache Camel is the technology of choice.

API management.

API-driven processing

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

Related content:

Build an API with Camel

Normalize web services with Camel

Play with a Camel API in the Developer Sandbox

Replayable events

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:

Watch this tech talk

Build reactive apps with Camel

Design event-driven integrations with Camel

Data streaming

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:

Look at the transformation example

Play in the Developer Sandbox

Container

Service composition

Combine together a collection of services 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:

Learn about Camel’s message processor

Learn about Camel’s outing slip

Learn about Camel’s Scatter-Gather

More use cases

Here are more advanced use cases where Apache Camel also excels in providing the needed functionality.

Enterprise

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.

Training and certifications

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.

try_red_hat_enterprise_linux

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.