InfoQ Homepage Development Content on InfoQ
-
A Recipe to Migrate and Scale Monoliths in the Cloud
In this article, I want to present a simple cloud architecture that can allow an organization to take monolithic applications to the cloud incrementally without a dramatic change in the architecture. We will discuss the minimal requirements and basic components to take advantage of the scalability of the cloud.
-
Ballerina: a Data-Oriented Programming Language
Ballerina’s flexible type system brings the best of statically typed and dynamically typed languages in terms of safety, clarity, and speed of development. Ballerina treats data as a first-class citizen that can be created without extra ceremony, just like strings and numbers.
-
How to Fight Climate Change as a Software Engineer
We need to reduce and eliminate greenhouse gas emissions to stop climate change. But what role does software play, and what can software engineers do? Let’s take a look under the hood to uncover the relationship between greenhouse gas emissions and software, learn about the impact that we can have, and identify concrete ways to reduce emissions when creating and running software.
-
Article Series: Native Compilation Boosts Java
Java dominates enterprise applications. But in the cloud, Java is more expensive than some competitors. Native compilation makes Java in the cloud cheaper. It raises many questions for all Java users: How does native Java change development? When should we switch to native Java? When should we not? And what framework should we use for native Java? This series provides answers to these questions.
-
Cloud Native Java with the Micronaut Framework
The Micronaut framework provides a solid foundation for building Cloud Native Java microservices. It reduces the use of Java reflection, runtime proxy generation, and dynamic classloading. Tight integration with GraalVM Ahead-of-Time Compilation (AOT) has seen the usage of the Micronaut framework grow. Active compilation-time checking increases type safety and improves developer productivity.
-
Getting Started to Quarkus Reactive Messaging with Apache Kafka
How data is processed/consumed nowadays is different from how it was once practiced. In the past, data was stored in a database and it was batch processed for analytics. Apache Kafka is a distributed event store and stream-processing platform for storing, consuming, and processing data streams in real-time. In this post, we’ll learn how to produce and consume data using Apache Kafka and Quarkus.
-
Exploring Architectural Concepts Building a Card Game
One of the things I missed during the pandemic were my friends, the possibility to meet them, discuss with them and, why not, play cards with them. So I decided to implement an app to play Scopone with my friends and, at the same time, test “in the code” some architectural concepts which had been intriguing me for some time.
-
Designing Secure Tenant Isolation in Python for Serverless Apps
Software as a Service (SaaS) has become a very common way to deliver software today. While providing the benefits of easy access to users without the overhead of having to manage the operations themselves, this flips the paradigm and places the responsibility on software providers for maintaining ironclad SLAs, as well as all of the security and data privacy requirements.
-
Native Java in the Real World
Microservices on Kubernetes are the native Java sweet spot: they have the most significant framework and Java runtime overhead. Native Java needs more effort to build, debug, test, deploy & profile. The application framework should fully support native Java in production. Native Java adoption can be incremental. But a native Java application only works if all its libraries support native Java.
-
Kubernetes Native Java with Quarkus
Quarkus is an industry leader in startup time and memory utilization for native and JVM-based Java applications. This reduces cloud costs. Kubernetes is a first-class deployment platform in Quarkus with support for its primitives and features. Developers can use their Java knowledge of APIs like Jakarta EE, MicroProfile, Spring, etc. Applications can be imperative or reactive - or both!
-
Kubernetes Crosses the Chasm, and Other Lessons from the 2021 CNCF Survey
You know I love a good survey, so let’s take a look at the Cloud Native Computing Foundation’s 2021 annual survey. They asked 2,302 respondents how they use Kubernetes and the more general category of cloud-native tools. The major conclusion of the report is that Kubernetes usage is mainstream, as the sub-title of the report labeled 2021: “The year Kubernetes crossed the chasm.”
-
Revolutionizing Java with GraalVM Native Image
GraalVM Native Image is an ahead-of-time compiler that generates native Java executables. These executables start very fast and use less CPU and memory. This makes Java in the cloud cheaper. GraalVM can even achieve peak throughput on par with the JVM. Many Java frameworks already support GraalVM, such as Spring Boot, Micronaut, Quarkus, Gluon, etc.