The Apache Software Foundation (ASF) oversaw 339 projects in 2019 — with a robust community of over 3,000 committers tweaking a huge 59,309,787 lines of code.
The most active project, by commits, was Apache Camel — a tool designed to allow enterprise developers to integrate a huge range of applications.
Apache Camel lacks the brand recognition of fellow ASF projects Hadoop, Kafka, or Spark; all widely used by well-known businesses, many of which have build critical components of their architecture on such open source software.
But as businesses seek to integrate more applications — e.g. to make combined use of the data they generate — Apache Camel is growing more important.
And as one developer at the EC responsible for “developing reusable components, and advocating open source software” puts it: “I personally like the elegance and performance compared with other integration frameworks.”
He also touts a lively community (that made 41,164 commits in 2019).
Tell Me More…
Confluent’s Kai Wähner is also effusive about the project.
In a DZone blog, he notes that “[Apache Camel lets you] easily integrate different applications using the required patterns.
“You can use Java, Spring XML, Scala or Groovy. Almost every technology you can imagine is available, for example HTTP, FTP, JMS, EJB, JPA, RMI, JMS, JMX, LDAP, Netty, and many, many more (of course most ESBs also offer support for them). Besides, own custom components can be created very easily.”
He adds: “You can deploy Apache Camel as standalone application, in a web container (e.g. Tomcat or Jetty), in a JEE application Server (e.g. JBoss AS or WebSphere AS), in an OSGi environment or in combination with a Spring container.
“No matter which protocol you use. No matter which technology you use. No matter which domain specific language (DSL) you use – it can be Java, Scala, Groovy or Spring XML. You do it the same way. Always! There is a producer, there is a consumer, there are endpoints, there are EIPs, there are custom processors / beans (e.g. for custom transformation) and there are parameters (e.g. for credentials).”
Even Mulesoft, which provides a similar offering in the form of its open source Mule ESBacknowledges that Camel’s lean framework “makes it easy to learn for programmers. Camel also accommodates different Domain Specific Languages (DSLs), allowing programmers to work in whichever language they find most confortable.”
“Camel also closes the gap between modeling and implementation by adhering to Enterprise Integration Patterns (EIPs) – allowing programmers to split integration problems into smaller pieces that are more easily understood.
New in 2020
In 2019 the Apache Camel team added two new projects: Camel K and Camel Quarkus. Camel K essentially takes the toolkit of Camel and runs it natively on Kubernetes, in a version specifically designed for serverless and microservice architectures.
(Users of Camel K can instantly run integration code written in Camel DSL on their preferred cloud, using Kubernetes or OpenShift).
Early this year it plans to add new tools including a Kafka Connector and Camel Spring Boot (moved out from main repository) — an open source Java-based framework used to create microservices that was developed by Pivotal.
The European Commission may seem an unlikely trail-blazer, but expect to hear a lot more about Apache Camel in 2020.