Notes


Indexes vs. Partitions in RDBMS: Understanding Their Differences and Power Together

When a query runs slowly, most developers instinctively think: “We need an index.” But while indexes are essential, they’re only part of the performance equation. In large-scale systems, data placement matters just as much as data access. That’s where partitioning comes in. Together, indexes and partitions can turn a sluggish query into a lightning-fast one — if designed correctly. This article explores how indexes and partitions differ, where they overlap, and how combining them strategically can yield remarkable performance improvements. Indexes and Partitions: Similar Goals, Dif..

Redis Modes Explained: Standalone, Replication, Sentinel and Cluster

Redis is one of the most popular in-memory data stores today — fast, simple, and widely adopted. But when it comes to deploying Redis in production, the question is no longer “How do I run Redis?” — it’s “Which mode should I run it in?” In this guide, we’ll explore Redis’s four main operation modes: Standalone Replication (Master–Slave) Sentinel Cluster We’ll discuss what each mode does, when it’s useful, and when you should consider moving to the next level. 1. Redis Standalone What It Is The simplest form of Redis — a single redis-server instance running on on..

Simplifying Redis Cluster Setup with Docker

When you work with Redis in cluster mode, local setup can quickly become a pain — especially when new developers join the team or when Redis is upgraded to a new version. Traditionally, Redis cluster initialization requires building from source and running manual scripts. Each time the version changes, the build process has to be repeated, which isn’t ideal for agile teams or fast-paced projects. In this article, I’ll share how I built a Redis cluster Docker image based on the official Redis image, allowing you to spin up a full cluster in seconds with a single docker run command. 1. ..

Dynamic Message Delays in RabbitMQ Without Plugins

Delayed messaging is a common requirement in distributed systems: scheduling retries, deferring notifications, or throttling workloads. RabbitMQ provides built-in support for message expiration and dead-lettering, but most tutorials rely on queue-level TTL. This approach has a major limitation: changing the TTL requires creating a new queue with updated arguments. In real-world systems, however, the required delay may vary over time. Sometimes you need 5 seconds, sometimes 30 seconds, sometimes longer. Re-creating queues at runtime is not practical, and relying on external plugins (like rab..

A Gentle Introduction to Java 25 Stream Gatherers

Since Java 8, the Stream API has revolutionized how we process collections and sequences in Java. With map, filter and flatMap, developers gained a declarative, functional approach to transforming data. However, as real-world data processing evolved, the need for stateful intermediate operations, windowed processing, and concurrent mapping became evident. Java 25 addresses these gaps by introducing Gatherers, a new set of tools in the Stream API designed to simplify complex stream workflows. Whether you want to perform sliding window calculations, cumulative scans, or batch processing with ..

Redis Pub/Sub Explained with a Real-World Example

Real-time communication between distributed services is a common challenge in modern applications. Traditional approaches, such as polling the database or cache on each request, introduce latency, network overhead, and scalability issues. To tackle this, Redis Pub/Sub provides a push-based notification mechanism that allows instances to stay in sync instantly and efficiently. To illustrate this concept, we implemented a feature flag synchronization project in Spring Boot. While feature flags serve as our example scenario, the core lesson is about Redis Pub/Sub architecture and its advan..

Understanding OSIV in Spring Boot — Convenience or Hidden Bottleneck?

Spring Boot enables Open Session in View (OSIV) by default, allowing lazy-loaded entities to be accessed even after a transaction has ended. While this behavior simplifies development and prevents common exceptions, it can quietly turn into a performance bottleneck in production. In this article, we’ll explore: How OSIV works under the hood Why it’s helpful for developers What risks it introduces in real-world systems How to measure its performance impact TL;DR: If you want to skip the explanation and dive straight into the code, check out the full implementation on G..

Building Scalable gRPC Microservices with Spring Cloud: Eureka vs Consul

Modern microservices architectures demand scalable, resilient service discovery. In this post, I’ll walk you through a real-world implementation using Spring Boot, Spring Cloud, and gRPC, comparing two popular service registries: Eureka and Consul. Architecture Overview This project is structured as a multi-module Maven application, each module serving a distinct role: config-server: Centralized configuration using Spring Cloud Config. grpc-lib: Contains the gRPC service definition (hello.proto) and generated stubs. grpc-server: Implements the HelloService gRPC service. grpc-..

Build FFmpeg from Source with x264, x265, fdk-aac and more on MacOS

FFmpeg is one of the most powerful open-source multimedia frameworks, capable of handling everything from simple format conversions to complex video pipelines. While pre-built binaries are convenient, compiling FFmpeg from source gives you full control over included codecs, performance optimizations, and platform-specific tweaks. In this post, we’ll walk through how to build FFmpeg 8.0 from source on macOS, linking it statically against essential libraries like x264, x265, fdk-aac, libvpx, opus, freetype and OpenSSL. This setup ensures maximum codec compatibility, secure streaming sup..

Building ImageMagick from Source with HEIF, WebP, and Modern Codecs on macOS

If you’ve ever tried to compile ImageMagick with full codec support (HEIF, WebP, PNG, JPEG, TIFF, etc.) on macOS, you know it’s not a trivial task. Precompiled binaries often lack optional delegates like HEIF or WebP due to licensing and dependency complexity. In this post, we’ll walk through the process of building ImageMagick entirely from source, including all the required libraries and codecs. 1. Why Build from Source? Building from source gives you: ✅ Full control over which codecs and features are included. ⚙️ Compatibility with your system architecture (Apple Silicon o..

Showing 1 to 10 of 40 (4 Pages)