InfoQ Homepage Development Content on InfoQ
-
InfoQ Java Trends Report 2025
This report summarizes how the InfoQ Java editorial team and several Java Champions currently see the adoption of technology and emerging trends within the Java and JVM space in 2025. We focus on Java the language, as well as related languages like Kotlin and Scala, the Java Virtual Machine (JVM), and Java-based frameworks and utilities.
-
Overload Protection: the Missing Pillar of Platform Engineering
Overload protection is often overlooked in platform engineering, leaving teams to create inconsistent, fragile fixes. Centralized rate limits, quotas, adaptive controls, and clear visibility give services predictable ways to handle traffic spikes, reduce reliability debt, and prevent cascading failures across systems.
-
Scaling Cloud and Distributed Applications: Lessons and Strategies
The article shares goals and strategies for scaling cloud and distributed applications, focusing on lessons learned from cloud migration at Chase.com at JP Morgan Chase. The discussion centers on three primary goals and the strategies addressing the goals, concluding how these approaches were achieved in practice. For those managing large-scale systems, these lessons provide valuable guidance!
-
Micro-Frontends: a Sociotechnical Journey toward a Modern Frontend Architecture
Micro-frontends differ from components by emphasising autonomy and flow over standardisation and reuse—a sociotechnical shift aligned with Conway's law. Migration should be gradual, starting where autonomy is most beneficial and ensuring that the architecture aligns with the team structure. Duplication can benefit the flow and enable iterative delivery, rather than requiring extensive rewrites.
-
Building Distributed Event-Driven Architectures across Multi-Cloud Boundaries
Multi-cloud event-driven architectures are now essential, not optional. With most organizations already multi-cloud, success depends on optimizing latency, ensuring resilience, and managing event consistency across providers. Key practices include code-level tuning, robust recovery policies, duplicate prevention, observability, and strong team readiness.
-
Holistic Engineering: Organic Problem Solving for Complex Evolving Systems
Late projects. Architectures that drift from their original design. Code that mysteriously evolves into something nobody planned. These persistent problems in software development often stem not from technical failures, but from forces we pretend don't exist—reward systems that incentivize the wrong behaviors, organizational structures that ignore domain boundaries, and human dynamics.
-
Empowering Teams: Decentralizing Architectural Decision-Making
In today’s rapidly evolving tech landscape, centralized architectural decision-making can become a bottleneck to delivery performance and innovation. Through stories from our own journey, we’ll share how decentralizing decisions improved alignment across teams, empowered faster decision-making, and fostered a culture of ownership.
-
Beyond Accidental Quality: Finding Hidden Bugs with Generative Testing
Generative testing uncovers hidden software bugs by exploring the input space and verifying system invariants. This surpasses example-based tests that rely on known scenarios and can miss edge cases.
-
Building a RAG Application with Spring Boot, Spring AI, MongoDB Atlas Vector Search, and OpenAI
The RAG paradigm redefines AI: it combines generative models and business data for accurate, contextualised responses. The article shows how to integrate Spring Boot, Spring AI, MongoDB Atlas and OpenAI into a powerful and flexible pipeline capable of transforming the way businesses access and create value from data, with applications ranging from finance and healthcare to customer service.
-
Go Channels: Understanding Happens-Before for Safe Concurrency
This article dives into the happens-before semantics of Go channels, explaining how they relate to memory visibility, synchronization, and concurrency correctness. We'll examine subtle pitfalls, illustrate them with examples, and explore the architectural implications for system designers.
-
Bringing AI Inference to Java with ONNX: a Practical Guide for Enterprise Architects
Java applications can now run transformer-based AI models directly within the JVM—without Python, REST wrappers, or microservices. This guide shows how to integrate ONNX-powered inference with tokenizer support, GPU acceleration, modular deployment, and observability, enabling architects in regulated domains to adopt AI without disrupting compliance or CI/CD workflows.
-
Engineering a Time Series Database Using Open Source: Rebuilding InfluxDB 3 in Apache Arrow and Rust
At times, to evolve your product, you need to rebuild it from scratch. The article provides the story behind the rewrite of InfluxDB from scratch using a different programming language - Rust - and stack - Apache Flight, Data Fusion, Apache Arrow and Parquet (FDAP). It emphasises the benefits, as well as the mechanics behind its operation and the different versions of the product.