Designing Systems Series | Yusuf Aytas
Designing Systems Series<br>Software system design in practice: drawing boundaries, managing state, designing APIs and data contracts, handling overload, and distributed trade-offs.<br>December 25, 2021·34 min read<br>Designing A Key-Value Store<br>I’ve been asked once to design a key value store in an interview. It looks easy at first. Then it gets hard, fast. What makes it interesting is how ambiguous it is. I started us...
April 7, 2022·26 min read<br>Data as a Product is a Promise<br>Domaindriven design (DDD) has been around for quite a long time. In short, DDD focuses on domain to match domain requirements. One of the pillars of DDD is bounded context. A bo...
August 20, 2019·7 min read<br>Good APIs Age Slowly<br>I have noticed that APIs are a bit like abstractions in general. APIs that impress people quickly are very often the ones that cause the most trouble later. I do not mean this a...
October 30, 2019·7 min read<br>Compatibility Is a Feature<br>A system only reveals what it's made of when it starts changing. At first, they often look better than they are because the code is still new. The data is still fairly clean. Th...
November 14, 2020·9 min read<br>Message Brokers Are Modern Grids<br>While working on my book on , I keep noticing the same pattern. Some systems look simple while they belong to one team and become something else after everybody starts using the...
September 13, 2016·5 min read<br>You Cannot Fix What You Cannot See<br>I have been working on this data discovery tool for a while, and it keeps showing me how messy our systems really are. The idea behind it is simple. Crawl every database we have...
December 29, 2021·14 min read<br>Service Overload Strategies<br>Service overload happens a lot. If you haven't seen one, count yourself lucky. The first time I watched it take a system down, I realized how serious it’s to get the basics righ...
December 15, 2017·9 min read<br>You Know State Is NO Good<br>A few years ago,I worked on data deletion path where we deleted connections for a person. On the deletion path, we wiped the data, confirmed the rows were gone, verified the cac...
October 1, 2025·17 min read<br>Why Over-Engineering Happens<br>If you’ve worked in software long enough, you’ve probably seen it: a CRUD app serving a handful of users, deployed on a Kubernetes cluster with half the CNCF landscape stitched...
October 4, 2012·8 min read<br>XA Transactions: A Simple Guide<br>In early days of computing, there was no need for distributed transactions, everything lived in one place. As number of applications increased, synchronization of the data becom...
Links
Pages
Copyright © 2026 Yusuf Aytas·All rights reserved