This blog post shows a concrete example of transforming raw unstructured text into structured Java objects with Camel Quarkus and Quarkus LangChain4j. Introduction Following previous experiments about unstructured data extraction, some directions were given about how a large language model could be setup to transform unstructured data into its structured counterpart. In this blog post, we will see a ready to use example that could serve as a starting point to create your own Camel route performing data extraction.
Continue reading ❯
CAMELAI
The first law of software complexity says that “a well-designed system will degrade into a badly designed system over time”. This law can be ruthless for open source projects receiving hundreds of contributions every month. That’s why projects must refactor code, evaluate APIs, review tests, and modernize code to leverage the latest and greatest features from Java. Camel Test Support One area in Camel that has had little attention until recently was our test support code.
Continue reading ❯
CAMELTEST
Chunking is a crucial aspect of data processing that can significantly impact retrieval quality, query latency, costs, and even the accuracy of Large Language Model (LLM) outputs. In this blog post, we’ll explore what chunking is, its importance, and how the new Chunking DSL in Apache Camel 4.8.0 improves data processing workflows. The Problem with Traditional Chunking Approaches Before Camel 4.8.0, applications using Camel would have to implement custom chunking logic or rely on external libraries.
Continue reading ❯
CAMELAI
Apache Camel AI is a set of components that allow various AI-related technologies to be integrated with Camel. Nowadays, LLMs such as OpenAI ChatGPT and Meta Llama are gaining a lot of attention, and many frameworks and tools are exploring ways to utilise them. Camel AI also includes the LangChain4j component suite, and there are already blog posts about how you can utilise LLMs using LangChain4j in the Camel Blog:
Continue reading ❯
CAMELAI
This blog is based on experiments done about extracting structured data into its structured counterpart. More precisely, in this post, we’ll give directions about how to convert a conversation transcript into a Java object. Introduction Reading articles like this over the net, it seems that folks have a lot of unstructured data at the disposal while not being able to take advantage on it. So probably, in the future we might expect to deal more and more with unstructured data extraction in integration flow.
Continue reading ❯
CAMELAI
Introduction Apache Camel has always been committed to delivering top-notch performance. As the development of Camel 4 progressed, so did the dedication to enhancing its performance. In this blog post, we’ll explore the advances made in the pursuit of efficiency, focusing on key improvements introduced between Camel 4.1 and 4.2, with a few important improvements for the upcoming 4.3. Camel 4.1: A Leap Forward in Type Conversion One of the notable enhancements in Camel 4.
Continue reading ❯
FEATURESCAMEL
In this article, we will explore how to use Debezium and Apache Camel in conjunction with Quarkus to build a reactive application efficiently and send real-time changes from a database to a destination, such as webservice or message queue or another database. What is Debezium? Debezium is a distributed, event-driven data change platform used to capture data changes in database systems and send them to other systems in real time so that applications can respond to all database insertions, updates and deletions made by other applications.
Continue reading ❯
FEATURESCAMEL
Introduction We are thrilled to share the remarkable advancements in the performance of Apache Camel 4, achieved through our diligent efforts in addressing a critical JVM issue (JDK-8180450). In this article, we will delve into the details of our investigation, the tools employed, and the subsequent optimizations that have propelled Apache Camel 4 to new heights of speed and efficiency. Identifying the Performance Challenge The JVM issue JDK-8180450, known for its potential performance penalties during type checking, became our focal point.
Continue reading ❯
FEATURESCAMEL
Starting from Camel 3.19.0 we have four cloud services supported for loading properties as secrets: AWS Secret Manager Google Cloud Secret Manager Azure Key Vault Hashicorp Vault One of the problems we faced in the development was related to finding a way to automatically refresh the secret value on the secrets update. The main players in the cloud game are providing solutions based on their services: AWS provides multiple ways to be notified about secret updates and secret rotations through AWS Cloudtrail or AWS Cloud events, GCP leverages Google Pubsub to deliver messages with events related to secret, while Azure provides multiple ways of getting notified about events related to a vault in the Azure Key Vault service, mostly by using Azure Eventgrid as an intermediate service.
Continue reading ❯
CAMEL
In Camel 3.16.0 we introduced the ability to load properties from vault and use them in the Camel context. This post aims to show the updates and improvements we’ve done in the last two releases. Supported Services In 3.16.0 we’re supporting two of the main services available in the cloud space: AWS Secret Manager Google Cloud Secret Manager In 3.19.0, to be released, we’re going to have four services available:
Continue reading ❯
CAMEL
At the end of 2019 Camel 3 arrived. Some main features were modularization of the core and support for Java 11. A bunch of other changes were mentioned in Claus Ibsen’s blog: Apache Camel 3 What’s New (top 10) In this blog, we focus on the top 10 of features that arrived since the 3.0 release. As an overview, but also to give some attention to features not everyone is aware of.
Continue reading ❯
CAMEL
In the last weeks, together with Claus, we’ve been working on a new feature: loading properties from Vault/Secrets cloud services. It will arrive with Camel 3.16.0, currently on vote and to be released by the end of this week (24/3). This post introduces the new features and provide some examples. Secrets Management in Camel In the past there were many discussions around the possibility of managing secrets in Camel through Vault Services.
Continue reading ❯
CAMEL
Many developers know that Apache Camel is one of the most active Apache projects. Consider the top 3 Apache Code Authors in 2021: Andrea Cosentino: 4,447 commits (352,346 insertions, 399,815 deletions) Claus Ibsen: 2,974 commits (555,245 insertions, 567,896 deletions) Mark Thomas: 2,509 commits (186,889 insertions, 117,182 deletions) The first two places are occupied by Camel committers. In 2021 the Camel project also reached the second place when it’s about the number of commits (9541), just behind Superset.
Continue reading ❯
CAMEL
The need to process larger quantities of data has been a growing concern and necessity within our community. For the last few releases we have been working to create mechanisms to simplify how our users can consume data at scale. Although Camel is no stranger to consuming data at scale, recent trends in computing and systems architecture introduce the need for behaviors that improve agility, speed and scalability when doing so.
Continue reading ❯
FEATURESCAMEL
For Camel 3.16.0 we are removing the deprecated container-based test modules and replacing them with a new set of modules called Camel test-infra. They continue to support container-based tests via TestContainers, however they abstract the underlying test infrastructure. One of the great benefits for our project is that they allow us to more easily switch from container-based tests, to external instances. Previously, we would need to create a new test or implement a more complex design if we wanted to test both a container instance and an external service instance (i.
Continue reading ❯
FEATURESCAMEL
We recently started to review, investigate and fix reliability issues with the Kafka component. As part of that, we refactored the code to avoid problematic concurrency patterns, remove calls to deprecated Kafka client code and simplify the overall maintainability of the code. This led to many changes in the internal implementation of the component, which we will talk about in this blog post. Motivation The ground work related to these changes can be traced back to the following set of issues reported on our Jira.
Continue reading ❯
FEATURESCAMEL
Bringing the world of Java scripting to Camel
Continue reading ❯
FEATURESCAMEL
The S3 Streaming upload feature will arrive on Camel 3.10.0
Continue reading ❯
FEATURESCAMEL
We’re happy to announce that our little caravan has been enriched by two new committers. The Camel project warmly welcomes Jiri Ondrusek and Jeremy Ross. Jiri Ondrusek’s has been contributing to Camel, Camel Spring Boot, and Camel Quarkus for a while now, and Jeremy Ross has been doing stellar work on the Salesforce component, his expertise in Salesforce will help us keep up with frequent changes made on that platform.
Continue reading ❯
CAMELCOMMITTERS
In Camel 3.6.0 we will introduce the camel-aws2-eventbridge among others new cool components. The aim of this blog post is showing what you can do with the Eventbridge AWS Service and the related camel component. What is AWS Eventbridge? The definition from the AWS official website is the following: Amazon EventBridge is a serverless event bus that makes it easy to connect applications together using data from your own applications, integrated Software-as-a-Service (SaaS) applications, and AWS services.
Continue reading ❯
CAMEL