Part 2: Centralized Logging in Spring Boot with ELK Stack — Filebeat, Logstash, Elasticsearch, and Kibana

In the first part of this workshop, we added metrics to our Employee Management API using Spring Boot Actuator, Micrometer, Prometheus, and Grafana. Metrics answer questions such as: How many requests does the application receive? What is the API error rate? Is JVM heap memory increasing? Is p95 response time above the expected limit? But metrics do not explain the…

Spring Boot Observability Workshop: Metrics, Logs, and Traces with Actuator, Prometheus, Grafana, ELK, and Jaeger

Production applications should not be treated as black boxes. When an API slows down, fails, or consumes too much memory, teams need answers quickly: Is the application healthy? Which API is slow? Is the JVM running out of memory? Which request failed? Which downstream service caused the delay? This is where observability helps. Observability is the ability to understand the…

Part 16: Oracle ↔ Java ↔ JPA/Hibernate Mapping Guide – Choosing the Right Data Type for Enterprise Applications

Introduction Every enterprise application stores dates and timestamps. Whether you're building a banking platform, payment gateway, insurance application, e-commerce website, healthcare system, or event management platform, almost every table contains fields like: Created Date Updated Date Transaction Time Settlement Date Business Date Expiry Date Appointment Time Event Timestamp Although Java 8 introduced an excellent Date & Time API, many developers…

Why Refreshing L1 Cache Using a Scheduler is a Bad Idea

Building Scalable and Consistent Microservices Caching Architectures Caching is one of the most effective techniques for improving application performance. Modern microservices often implement a multi-level cache architecture: L1 Cache: In-memory cache inside the application (EhCache, Caffeine) L2 Cache: Distributed cache such as Redis or GemFire Database: The system of record While implementing L1 caching, many teams adopt a seemingly simple…

AI for Java Architects – Part 12

Building an Enterprise Architecture Copilot: The Complete Capstone Project "The best way to learn AI engineering is not by building chatbots. It is by building systems that solve real enterprise problems." Introduction Over the previous eleven articles, we have covered: LLM Fundamentals Embeddings Vector Databases RAG Spring AI Prompt Engineering Agents Multi-Agent Systems LangGraph MCP Production Deployment on AWS Now…

AI for Java Architects – Part 11

Building Production AI Systems on AWS: From Proof of Concept to Enterprise Deployment "An AI demo impresses people. A production AI platform delivers business value." Introduction Over the last ten articles, we have learned: LLMs Embeddings Vector databases RAG Prompt engineering Spring AI Agents Multi-agent systems LangGraph MCP At this point, you can build: ✅ Chatbots ✅ RAG systems ✅…

AI for Java Architects – Part 10

Model Context Protocol (MCP) and Tool Integration: Connecting AI to Enterprise Systems "An LLM without tools is knowledgeable. An LLM with tools becomes useful." Introduction In the previous articles, we learned: Part 1 — LLM Fundamentals Part 2 — Embeddings and Vector Databases Part 3 — RAG Part 4 — Building RAG Applications Part 5 — Prompt Engineering Part 6…

AI for Java Architects – Part 9

LangChain and LangGraph for Java Architects: Building Production AI Workflows "LLMs provide intelligence. Frameworks provide engineering." Introduction In the previous articles, we learned: Part 1 — LLM Fundamentals Part 2 — Embeddings and Vector Databases Part 3 — RAG Part 4 — Spring AI RAG Applications Part 5 — Prompt Engineering Part 6 — Spring AI Deep Dive Part 7…

AI for Java Architects – Part 8

Multi-Agent Systems and Agentic AI Architectures "A single agent can solve a task. A team of agents can solve a business problem." Introduction In Part 7, we learned that an AI agent can: Reason Plan Use tools Maintain memory Execute tasks But enterprise systems rarely rely on a single component. We don't build one giant Java class. We build: Controllers…

AI for Java Architects – Part 7

Building AI Agents: Reasoning, Planning, Tools and Autonomous Workflows "A chatbot answers questions. An agent solves problems." Introduction So far in this series, we have learned: Part 1 — LLM Fundamentals Part 2 — Embeddings and Vector Databases Part 3 — RAG Architecture Part 4 — Building RAG Applications Part 5 — Prompt Engineering Part 6 — Spring AI Deep…