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.

Background Jobs: Idempotency, Retries, and DLQs
backenddistributed systems

Background Jobs: Idempotency, Retries, and DLQs

Async job queues are the silent backbone of production. Get them wrong and you ship duplicate operations, lost messages, and data inconsistency. Three patterns that have kept us safe in production.

3 min read
Scaling WebSockets: Connections, State, Broadcast
backenddistributed systems

Scaling WebSockets: Connections, State, Broadcast

Scaling an HTTP API to tens of thousands of users is relatively easy. Managing the same load over WebSocket connections is a different game. Four years of multiplayer production.

4 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
Redis Pub/Sub or RabbitMQ? When to Pick Which
backenddistributed systems

Redis Pub/Sub or RabbitMQ? When to Pick Which

I've run both in the same platform for years. Why each got chosen, when I paid the cost of a wrong call, and the four questions I ask before picking.

3 min read
Istio Service Mesh in Practice: What It Does and Doesn't
kubernetesdistributed systems

Istio Service Mesh in Practice: What It Does and Doesn't

We brought Istio into production during our 2023 Kubernetes migration. A year in, here's what actually delivers value versus what's sold but we don't use — a field report.

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
Polyglot Architecture: Java, .NET, and Python on One Platform
distributed systemsbackend

Polyglot Architecture: Java, .NET, and Python on One Platform

Our production platform has 20+ microservices — some Java/Spring, some .NET Core, some Python. Can multiple languages live next to each other cleanly? When is it necessary, when is it regret?

3 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
MySQL + MongoDB Together: The Real Cost of Polyglot Persistence
backenddistributed systems

MySQL + MongoDB Together: The Real Cost of Polyglot Persistence

In our game platform, MySQL and MongoDB run side by side. The advantages of using both, the costs that sneak up on you, and four questions to ask before that decision.

3 min read