InfoQ Homepage Development Content on InfoQ
-
Stop Guessing, Start Improving: Using DORA Metrics and Process Behavior Charts
Delivery performance rarely changes in a straight line. Small degradations caused by tooling, environment instability, or team changes can accumulate quietly, while real improvements take time to emerge. This article shows how combining DORA metrics with Process Behavior Charts helps teams zoom out, detect meaningful shifts early, and validate improvement hypotheses.
-
Building Streaming Infrastructure That Scales: Because Viewers Won't Wait until Tomorrow
In streaming, the challenge is immediate: customers are watching TV right now, not planning to watch it tomorrow. When systems fail during prime time, there is no recovery window; viewers leave and may not return. One and a half years ago, at ProSiebenSat.1 Media SE, we faced the challenge of scaling streaming applications for international users.
-
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.