InfoQ Homepage Languages Content on InfoQ
-
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.
-
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.
-
Evaluating Kotlin Multiplatform: Benefits and Trade-Offs in Cross-Platform Development
KMP is emerging as an alternative for cross-platform development, offering a path to share code without sacrificing the performance and feel of a native application. KMP comes with its own set of trade-offs and this article dives deep into those. While it focuses primarily on Android and iOS, KMP can be used to build desktop, web, and server-side applications, all from the same shared logic.
-
Infusing AI into Your Java applications
Equip yourself with the basic AI knowledge and skills you need to start building intelligent and responsive Enterprise Java applications. With the help of our simple chatbot application for booking interplanetary space trips, see how Java frameworks like LangChain4j with Quarkus make it easy and efficient to interact with LLMs and create satisfying applications for end-users.
-
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.