InfoQ Homepage Languages Content on InfoQ
-
Backend FinOps: Engineering Cost-Efficient Microservices in the Cloud
Backend FinOps integrates financial discipline into microservices, crucial for cutting cloud costs. Challenges such as resource fragmentation and cold starts underscore the need for intelligent design, effective language choice, robust tagging, and automation. Implementing FinOps via IaC, CI/CD checks, and dynamic autoscaling (e.g., Karpenter) ensures sustained efficiency.
-
Jakarta EE 11 Overview: Virtual Threads, Records, and the Future of Persistence
Jakarta EE 11 delivers enhancements that include support for Java 17 and 21, integration with Java records and virtual threads, and the introduction of the Jakarta Data specification for unified SQL and NoSQL persistence. This release simplifies enterprise Java and establishes the groundwork for Jakarta EE 12, which will advance capabilities in data management.
-
Spring AI 1.0 Delivers Easy AI Systems and Services
AI is here to stay, and it represents a unique and wonderful opportunity for Java and Spring developers. For most people, “AI engineering” simply means calling an LLM-based service over HTTP. In this article, we’ll examine the new Spring AI 1.0 project and explore how it can be used to integrate AI more effectively.
-
Bringing GPU-Level Performance to Enterprise Java: a Practical Guide to CUDA Integration
Java developers are no longer limited by CPU cores. This guide explores how to bring GPU-level acceleration to enterprise Java using Compute Unified Device Architecture (CUDA), with a practical Java Native Interface (JNI)-based integration pattern, real-world use case, and performance benchmarks. If you're solving high-throughput challenges, this article shows how to make Java truly parallel.
-
Faster, Smoother, More Engaging: Personalized Content Pagination
Dynamic content loading powered by AI transforms user experiences by personalizing delivery based on user's behavior and network conditions. By analyzing scroll depth, speed, and dwell time, we optimize loading times, enhance engagement, and reduce infrastructure costs, especially on devices with poor internet connectivity.
-
Mocking gRPC in Spring Boot Microservice Integration Tests with WireMock
Mocking gRPC services allows you to validate gRPC integration code during your tests while avoiding common pitfalls such as unreliable sandboxes, version mismatches, and complex test data setup requirements. Learn how to use WireMock’s Spring Boot integration to mock gRPC services.
-
RxJS Best Practices in Angular 16: Avoiding Subscription Pitfalls and Optimizing Streams
This article delves into modern Angular (16+) RxJS best practices. It emphasizes using AsyncPipe for templates, flattening streams with operators, ensuring proper cleanup with takeUntil and DestroyRef, implementing error handling, and combining RxJS with Angular signals for efficient state management, ultimately leading to future-proof and maintainable code in Angular 17/18.
-
Binary Size Matters: the Challenges of Fitting Complex Applications in Storage-Constrained Devices
This article explores developing software for microcontrollers in C or C++, where constraints are the limited amount of volatile memory and the embedded hardware platform on which the software runs. It shows how to adopt languages like C++ while optimizing for binary size due to stringent hardware constraints, and trade off between runtime efficiency and binary size in architecture decisions.
-
Elevate Developer Experience with Generative AI Capabilities on AWS
This is a summary of a talk I gave at InfoQ Dev Summit Munich 2024. I discussed the transformative potential of generative AI in enhancing developer experiences, particularly through AWS. I’ll introduce key tools like Amazon Bedrock, Code Review Assistant, Agentic Code Generation, and Code Summarization in this article.
-
Spring Security Configuration with Flow Diagrams
In modern Java systems, Spring Security is widely used, offering numerous settings for various scenarios. This diversity can be confusing when more specific configurations beyond the default formLogin(withDefaults()) are needed. This article demonstrates basic configurations with detailed component analysis through diagrams and code examples, providing a starting point for further customization.
-
InfoQ Java Trends Report - December 2024
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 2024. 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.
-
Reactive Real-Time Notifications with SSE, Spring Boot, and Redis Pub/Sub
Explore the power of reactive programming for building scalable real-time notification systems. Using Spring Boot Reactive and Spring WebFlux, leverage non-blocking operations to handle high-volume, asynchronous data flows efficiently. Discover how Redis Pub/Sub enables event-driven messaging and how the SSE protocol provides persistent connections for instant client updates without polling.