tolgacelik.net
Writing

Notes from distributed systems in production.

Essays and field reports from building and operating high-traffic, polyglot platforms — Kubernetes, AWS, incident response, iGaming scale.

Redis Cache Invalidation: Four Patterns From Production
backendproduction

Redis Cache Invalidation: Four Patterns From Production

Cache invalidation is famously "one of the two hard things in CS." True — but the hard part isn't the magic, it's choosing the right pattern for your shape of system. Four field-tested patterns from iGaming production.

3 min read
Zero-Downtime Database Migrations: The Expand-Contract Pattern
backendproduction

Zero-Downtime Database Migrations: The Expand-Contract Pattern

Schema changes are the most-feared deploys in most systems. With the right approach, zero downtime is achievable. The expand-contract pattern I've used for years and the step-by-step plan.

3 min read
Feature Flags: How They Actually Work in Production
yazilim gelistirmeproduction

Feature Flags: How They Actually Work in Production

Feature flags sound simple — "on/off switch." Done badly, they fill your codebase with zombie code over a year. Six years of production experience on what they're for and what they aren't.

3 min read
Engineering On-Call: Surviving It and Improving It
productionkariyer

Engineering On-Call: Surviving It and Improving It

On-call rotation is the most disliked and most valuable practice in engineering teams. Done wrong it burns the team out; done right it's one of the strongest engineering practices around. Six years of iGaming on-call lessons.

4 min read
Your Code Works Locally. Now What?
yazilim gelistirmeproduction

Your Code Works Locally. Now What?

"Works on my machine" isn't a meme — it's a culture problem. What's the distance between when you think a feature is done and when it's actually done? A senior's end-to-end shipping checklist.

3 min read
10,000+ CCU: Managing Traffic Waves on Kubernetes
kubernetesdistributed systems

10,000+ CCU: Managing Traffic Waves on Kubernetes

Practical notes on running a multiplayer backend with 10,000+ concurrent users on Kubernetes — autoscaling on custom metrics, pre-warming, priorities, and surviving sudden traffic spikes.

3 min read
Production Incidents: The First 15 Minutes Matter Most
productiondistributed systems

Production Incidents: The First 15 Minutes Matter Most

How the first 15 minutes of a production incident play out determines the next few hours. A field playbook from years of iGaming on-call — what to do, what not to do, which tools to reach for.

4 min read
Observability Basics: Logs, Metrics, Traces — What's Each For?
productiondistributed systems

Observability Basics: Logs, Metrics, Traces — What's Each For?

The three pillars of observability: log, metric, trace. When to reach for which, the trouble with using one in place of another, and real incident examples showing how they work together.

4 min read
Technical Debt: When Do You Clean Up in Production?
yazilim gelistirmeproduction

Technical Debt: When Do You Clean Up in Production?

Technical debt is inevitable. Which debt do you live with, which do you pay with a sprint, when do you do a large refactor? A framework built from real production decisions.

4 min read