Outside Runtime BoundariesIn software engineering, async • await has fundamentally changed the way we develop asynchronous and concurrent applications.Sep 6, 2023Sep 6, 2023
A Tale of Two SpectrumsIn this post, we will explore distributed systems through the lens of two fundamental dimensions: sync vs async and sequential vs…May 28, 2023A response icon1May 28, 2023A response icon1
The Magic of AbstractionsIn Structure and Interpretation of Computer Programs, the term abstraction appears on page one, chapter one, headline one.May 20, 2023A response icon1May 20, 2023A response icon1
Getting started with small-step operational semanticsIn this post, I will design SagaLang, a tiny “programming language” to illustrate the ideas behind SOS.Mar 28, 2023A response icon2Mar 28, 2023A response icon2
Paper Summary: SagasThis post explores the origins of the concept of Sagas, long-running processes that span multiple database transactions.Feb 15, 2023Feb 15, 2023
Handling Failures From First PrinciplesThe post presents a blueprint for a principled failure handling strategy that guarantees correctness while maximizing the chance of successOct 22, 2022A response icon3Oct 22, 2022A response icon3
Paper Summary: Fundamentals of Fault-Tolerant Distributed ComputingThis paper explores the very foundations of failure, failure tolerance, and failure transparence.Sep 6, 2022Sep 6, 2022
Paper Summary: End-to-End Arguments in System DesignThe 1984 paper End-to-End Arguments in System presents a design principle that helps guide placement of functions in a distributed systemAug 15, 2022Aug 15, 2022
Kubernetes Network PolicyNetwork Policies determine if an incoming (Ingress) or outgoing (Egress) message is permitted or prohibited by the Kubernetes Network.Feb 9, 2021A response icon2Feb 9, 2021A response icon2
Kubernetes Networkingby Maegan Jong and Dominik TornowJan 17, 2021A response icon2Jan 17, 2021A response icon2