Apache Camel

VS Code Language support for Apache Camel 0.0.20 release

VS Code Language support for Apache Camel 0.0.20 release

During the past months, several noticeable new features have been added to improve the developer experience of application based on Apache Camel. These updates are available in the 0.0.20 release of Visual Studio (VS) Code extension.

Before going into the list of updates in detail, I want to note that I mentioned in the title the VS Code Extension release because VS Code extension is covering the broader set of new features. Don’t worry if you are using another IDE, though, most features are also available in all other IDEs that support the Camel Language Server (Eclipse Desktop, Eclipse Che, and more).

Continue reading “VS Code Language support for Apache Camel 0.0.20 release”

Share
Decoupling microservices with Apache Camel and Debezium

Decoupling microservices with Apache Camel and Debezium

The rise of microservices-oriented architecture brought us new development paradigms and mantras about independent development and decoupling. In such a scenario, we have to deal with a situation where we aim for independence, but we still need to react to state changes in different enterprise domains.

I’ll use a simple and typical example in order to show what we’re talking about. Imagine the development of two independent microservices: Order and User. We designed them to expose a REST interface and to each use a separate database, as shown in Figure 1:

Diagram 1 - Order and User microservices

Figure 1: Order and User microservices.

Continue reading “Decoupling microservices with Apache Camel and Debezium”

Share
Autoscaling Red Hat Fuse applications with OpenShift

Autoscaling Red Hat Fuse applications with OpenShift

In this article, we demonstrate Red Hat OpenShift’s horizontal autoscaling feature with Red Hat Fuse applications. The result is a Spring Boot-based application that uses the Apache Camel component twitter-search that searches Twitter for tweets based on specific keywords. If traffic or the number of tweets increases, and this application cannot serve all requests, then the application autoscales itself by increasing the number of pods. The ability to serve all requests is monitored by tracking this application’s CPU utilization on a particular pod. Also, as soon as traffic or CPU utilization is back to normal, the number of pods is reduced to the minimum configured value.

There are two types of scaling: horizontal and vertical. Horizontal scaling is where the number of application instances or containers is increased. Vertical scaling is where system resources like CPU and memory are increased at the running application’s or container’s runtime. Horizontal scaling can be used for stateless applications, whereas vertical scaling is more suitable for stateful applications.

Continue reading “Autoscaling Red Hat Fuse applications with OpenShift”

Share
Sending a telegram with Apache Camel K and Visual Studio Code

Sending a telegram with Apache Camel K and Visual Studio Code

When I was introduced to Apache Camel K a few months ago, I was amazed at how quickly developers could write and deploy an Apache Camel-based integration on Kubernetes. We immediately started work on creating Microsoft Visual Studio (VS) Code-based tools to make things even easier.

What is Camel K? It’s a lightweight integration framework built from Apache Camel and designed for a serverless/microsystem world that runs natively on Kubernetes. It lets developers write integrations in their favorite Camel DSL and quickly deploy them on Kubernetes or Red Hat OpenShift. You can even write your integrations in lightweight languages like Groovy or JavaScript.

We already built language support in VS Code for Apache Camel using the Language Server Protocol (LSP), offering auto-completion for Camel component URIs in both XML and Java. More recently, we began adding the same support for Groovy, JavaScript, YAML, and Kotlin. (See the Apache Camel LSP client project for details.)

Now, with our new Tooling for Apache Camel K by Red Hat extension, we add support for Camel K in your IDE. To illustrate the tools in action, let’s start with a simple user story inspired by an article that Nicola Ferraro wrote a few years ago (Creating a Telegram Bot in 5 minutes with Apache Camel).

Continue reading “Sending a telegram with Apache Camel K and Visual Studio Code”

Share
A look at development environments with specific tooling for Apache Camel Language

A look at development environments with specific tooling for Apache Camel Language

A growing set of editors and IDEs provides specific tooling for development of applications based on Apache Camel. Historically, there was only Eclipse Fuse Tooling, which was based on the Eclipse Desktop IDE. Then, an IntelliJ plugin was created. Both of these tools are tightly coupled to the specific IDE APIs. Consequently, they have the drawback of not easily sharing the development effort.

Supported editors and IDEs

Thanks to Language Server Protocol, with a core server and several configurations or small client development, Apache Camel Language can now be enjoyed on a growing set of environments:

Continue reading “A look at development environments with specific tooling for Apache Camel Language”

Share