InfoQ Homepage Development Content on InfoQ
-
Standardizing Native Java: Aligning GraalVM and OpenJDK
Native Java is essential for Java to remain relevant in the evolving cloud world. But it is not a solved problem yet. And the development lifecycle needs to adapt as well. Standardization through Project Leyden is key to the success of native Java. Native Java needs to be brought into OpenJDK to enable co-evolution with other ongoing enhancements.
-
Go Native with Spring Boot and GraalVM
Spring Boot 3 & Spring Framework 6, due in late 2022, will have built-in support for native Java. For Spring Framework 5.x & Spring Boot 2.x, Spring Native is the way to go. Spring Native provides integrations for Spring's vast ecosystem of libraries. It also has a component model that allows you to extend native compilation support for other libraries.
-
The What and Why of Programmable Proxies
A question which gets often asked is “What is a programmable proxy, and why do I need one?” This article tries to answer this question from different perspectives. We will start with a brief definition of what a proxy is, then discuss how proxies evolved, explaining what needs they responded to and what benefits they offered at each stage. Finally, we discuss several aspects of programmability.
-
Connecting Goals to Daily Teamwork
While we all believe that goal setting is important, it’s work that often doesn’t feel quite urgent enough to be included in our daily routine. It is critical to team success for managers to implement a regular cadence that connects daily work more directly to high-level goals, removing administrative roadblocks while helping teammates focus on what matters most.
-
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.