Programming Languages

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
How Quarkus brings imperative and reactive programming together

How Quarkus brings imperative and reactive programming together

The supersonic subatomic Java singularity has expanded!

42 releases, 8 months of community participation, and 177 amazing contributors led up to the release of Quarkus 1.0.  This release is a significant milestone with a lot of cool features behind it. You can read more in the release announcement.

Building on that awesome news, we want to delve into how Quarkus unifies both imperative and reactive programming models and its reactive core. We’ll start with a brief history and then take a deep dive into what makes up this dual-faceted reactive core and how Java developers can take advantage of it.

Continue reading “How Quarkus brings imperative and reactive programming together”

Share
Report from July 2019 ISO C++ Standards Committee Meeting (Concurrency and Parallelism Study Group)

Report from July 2019 ISO C++ Standards Committee Meeting (Concurrency and Parallelism Study Group)

The summer 2019 WG21 C++ Committee meeting was held in Cologne, Germany during the week of July 13. As usual,
Red Hat sent three representatives, Jason Merrill in the Core Working Group (CWG), Jonathan Wakely in the Library Working Group (LWG), and myself in the Concurrency and Parallelism Study Group (SG1). This rather late report covers the Cologne SG1 session and looks ahead to some revised papers from that meeting, which are scheduled for the fall meeting in Belfast, Northern Ireland, for the first week of November 2019.

Continue reading “Report from July 2019 ISO C++ Standards Committee Meeting (Concurrency and Parallelism Study Group)”

Share
Open Liberty Java runtime now available to Red Hat Runtimes subscribers

Open Liberty Java runtime now available to Red Hat Runtimes subscribers

Open Liberty is a lightweight, production-ready Java runtime for containerizing and deploying microservices to the cloud, and is now available as part of a Red Hat Runtimes subscription. If you are a Red Hat Runtimes subscriber, you can write your Eclipse MicroProfile and Jakarta EE apps on Open Liberty and then run them in containers on Red Hat OpenShift, with commercial support from Red Hat and IBM.

Continue reading “Open Liberty Java runtime now available to Red Hat Runtimes subscribers”

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
Quarkus: Modernize “helloworld” JBoss EAP quickstart, Part 2

Quarkus: Modernize “helloworld” JBoss EAP quickstart, Part 2

In part one of this series, we took a detailed look at Red Hat JBoss Enterprise Application Platform (JBoss EAP) quickstarts helloworld quickstart as a starting point for understanding how to modernize a Java application using technologies (CDI and Servlet 3) supported in Quarkus. In this part, we’ll continue our discussion of modernization with a look at memory consumption.

Measuring performances is a fundamental topic when dealing with a modernization process, and memory consumption reporting is part of performance analysis. It’s worth starting with these tools from the very beginning so that they can be used to evaluate the improvements achieved during the modernization process.

Continue reading “Quarkus: Modernize “helloworld” JBoss EAP quickstart, Part 2″

Share
Support lifecycle for Clang/LLVM, Go, and Rust in Red Hat Enterprise Linux 8

Support lifecycle for Clang/LLVM, Go, and Rust in Red Hat Enterprise Linux 8

Red Hat Enterprise Linux (RHEL) 8.1.0 includes updates to our llvm-toolset, go-toolset, and rust-toolset application streams, which provide developers with up-to-date versions of these compiler toolchains. The upstream projects for these streams move very quickly with new feature releases every six months for LLVM and Go, and every six weeks (!) for Rust. The communities around these toolchains encourage users to users to always stay up-to-date with the latest releases, which is why we try to get new versions into Red Hat Enterprise Linux as quickly as we can.

From a support perspective, we will continue to support these application streams for the entire life of RHEL 8. We will provide new features and bug fixes within the stream by updating to newer upstream releases on a regular basis. For llvm-toolset and go-toolset, you can expect stream updates every six months, and for rust-toolset you can expect updates every three months.

Continue reading “Support lifecycle for Clang/LLVM, Go, and Rust in Red Hat Enterprise Linux 8”

Share
Quarkus: Modernize “helloworld” JBoss EAP quickstart, Part 1

Quarkus: Modernize “helloworld” JBoss EAP quickstart, Part 1

Quarkus is, in its own words, “Supersonic subatomic Java” and a “Kubernetes native Java stack tailored for GraalVM & OpenJDK HotSpot, crafted from the best of breed Java libraries and standards.” For the purpose of illustrating how to modernize an existing Java application to Quarkus, I will use the Red Hat JBoss Enterprise Application Platform (JBoss EAP) quickstarts helloworld quickstart as sample of a Java application builds using technologies (CDI and Servlet 3) supported in Quarkus.

It’s important to note that both Quarkus and JBoss EAP rely on providing developers with tools based—as much as possible—on standards. If your application is not already running on JBoss EAP, there’s no problem. You can migrate it from your current application server to JBoss EAP using the Red Hat Application Migration Toolkit. After that, the final and working modernized version of the code is available in the https://github.com/mrizzi/jboss-eap-quickstarts/tree/quarkus repository inside the helloworld module.

This article is based on the guides Quarkus provides, mainly Creating Your First Application and Building a Native Executable.

Continue reading “Quarkus: Modernize “helloworld” JBoss EAP quickstart, Part 1″

Share
Get hands-on experience with Kubernetes and Quarkus at DevNation Live in Austin

Get hands-on experience with Kubernetes and Quarkus at DevNation Live in Austin

Join us December 12, 2019 for this free, one-day, two-track event at the Hilton Austin with Red Hat experts.

The cloud is dramatically changing established development practices, and developers need expert training and hands-on experience to stay up to date.

Join Red Hat’s developer advocates (including Burr Sutter, Edson Yanaga, and Kamesth Sampath) in Austin, Texas for a day of technical sessions, conversation, and hands-on workshops focused on Kubernetes development and Java microservices. Whether you are a Java developer or work in Node.js, C#, Ruby, or Python, you will gain a strong understanding of how to use modern architecture, new patterns, and DevOps to make the most of your work in the cloud.

Register now

Continue reading “Get hands-on experience with Kubernetes and Quarkus at DevNation Live in Austin”

Share