Kafka Fundamentals and KRaft Mode

Core Kafka concepts (topics, partitions, consumer groups, replication) and the background behind KRaft mode, which removes the ZooKeeper dependency.

February 22, 2024 · 5 min read

Implementing Hexagonal Architecture in Go

Core concepts of Hexagonal Architecture and its idiomatic implementation in Go using implicit interfaces and package structure for dependency direction control.

February 21, 2024 · 5 min read

Builder

Builder is the answer when three limits of constructors meet at once — many parameters, some optional, and step-wise validation. With fewer than all three, simpler tools suffice. When the language provides rich named/default parameters, the need for Builder shrinks as well.

February 11, 2024 · 5 min read

Factory

Factory’s shared intent is separating creation from use. The three variants — Factory Method, Abstract Factory, and Static Factory Method — split creation differently and suit different conditions. Static Factory Method is the variant most often encountered in practice, and DI containers absorb part of Factory’s explicit role.

February 4, 2024 · 5 min read

Singleton

Singleton is one of the simplest patterns but the canonical anti-pattern debate. The decision to bundle single-instance guarantee with global access into one pattern causes tight coupling and test difficulty. DI is the general alternative that separates the two intents.

January 28, 2024 · 5 min read

Dependency Injection — The Hierarchy of DIP, IoC, and DI

DIP (principle), IoC (pattern), and DI (technique) sit at different levels of abstraction. The hierarchy must be clear before framework features and design principles can be told apart.

January 25, 2024 · 6 min read

Incremental Cache Refresh Pattern

A pattern for switching from full cache refresh to incremental refresh. Separating data by update frequency and applying change detection reduces network costs.

January 20, 2024 · 4 min read

Cache Refresh Optimization Retrospective

How I reduced network costs and enabled instance downscaling by switching from full cache refresh to incremental refresh for campaign configuration data.

January 15, 2024 · 2 min read

What RDB Transaction ACID Actually Guarantees

What each of the four ACID properties actually guarantees in an RDB transaction. A/C/D are relatively clear guarantees, but only I has ’levels’ — the gateway to the correctness vs. concurrency trade-off.

September 1, 2023 · 4 min read

TCP and UDP

Two transport protocols that backend developers encounter constantly. A summary of TCP and UDP — connection establishment, reliability guarantees, flow/congestion control mechanisms, and selection criteria.

March 1, 2022 · 9 min read