Tom Donohue Tom D


Aerial drawing of a road network with cars on it
Integration done well

What is integration?

Integration is all about connecting systems together.

It’s about moving data between files, APIs and apps. If you’re starting to think about how to pull data out of Salesforce into a report, or how your applications are communicating with each other, then you’re already thinking about integration.

What is open source integration?

You can find a ton of integration software out there.

Some of it is good.

Some of it is very shit, and extremely expensive.

I solve integration problems with open source tools, like Apache Camel, ActiveMQ and Qpid.

These tools are open to everyone, support standards, and thousands of companies run them in production.

If you’re thinking of getting into integration, or you want to know how to connect your pile of systems together, using open source, then check out my articles on open source integration below.

Apache Camel

  • Apache Camel Tutorial: Apache Camel is an amazing framework for Java that handles all the hard work of integration very well. It comes with 200+ connectors for different systems, implements most of the well-known enterprise integration patterns, and has a thriving community. If you’ve already decided on Camel (good for you!), this article shows you how to get started from a developer perspective.

  • Understanding Camel routes: A route in Camel is a flow of data from A to B, through different stages or transformations. Routes are comprised of things like components and EIPs. This page contains an infographic which explains a typical route in Apache Camel.


  • Using ActiveMQ with Apache Camel: How to send and receive messages from ActiveMQ Artemis message broker, with Apache Camel’s JMS component. This will allow you to use simple queue-like structures for sharing messages asynchronously with other applications.

  • XA transactions in Camel: a checklist: Sometimes you need to use distributed transactions. This is a way of ensuring that an operation is atomic across several different systems, e.g. pulling messages out of a database and sending them to another API, in one “action”. This is a quick reference guide to make sure you’ve set up Camel correctly.

Working with APIs

  • Calling a RESTful service from Apache Camel: Third parties will often make their systems available through a REST API. Here’s how to use the HTTP component in Apache Camel to invoke a REST service, and how to provide basic authentication, if the service requires it. Plus a complete working solution.

Integration architecture

  • Enterprise Integration Patterns: Book Review: This is my review of the famous software engineering book. In this article I summarise the book, and tell you why it will grow your knowledge, and help you design solutions to complex integration problems.


  • Apache Camel Step-by-Step: Save time when learning Apache Camel. My full-length book, video lessons and example applications will teach you how to master Camel in no time.