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.
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 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.
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.
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
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
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
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
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
More use cases
Find below some more advanced use cases where Apache Camel also excels in providing the needed functionality.
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.
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.
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.