<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>P0 on An observer's log</title><link>https://blog.rtshkmr.com/tags/p0/</link><description>Recent content in P0 on An observer's log</description><generator>Hugo</generator><language>en</language><atom:link href="https://blog.rtshkmr.com/tags/p0/index.xml" rel="self" type="application/rss+xml"/><item><title>API Gateway</title><link>https://blog.rtshkmr.com/reference/archi/patterns/communication-and-apis/api-gateway/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/communication-and-apis/api-gateway/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;appears in nearly every system design; the single entry point pattern&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Consistency Models</title><link>https://blog.rtshkmr.com/reference/archi/patterns/reliability-and-consistency/consistency-models/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/reliability-and-consistency/consistency-models/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;the spectrum from linearisability to eventual consistency&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Data Model Selection</title><link>https://blog.rtshkmr.com/reference/archi/patterns/data-storage/data-model-selection/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/data-storage/data-model-selection/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;the first data decision in every design; determines query flexibility, scaling, and consistency&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Leader-Follower Replication</title><link>https://blog.rtshkmr.com/reference/archi/patterns/scaling-and-performance/leader-follower-replication/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/scaling-and-performance/leader-follower-replication/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;the default replication strategy for most production databases&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Networking Essentials</title><link>https://blog.rtshkmr.com/reference/archi/core/concepts/networking/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/core/concepts/networking/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;foundation for reasoning about inter-service communication, latency, and failure modes&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Serialisation Trade-offs</title><link>https://blog.rtshkmr.com/reference/archi/patterns/encoding-and-formats/serialization-tradeoffs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/encoding-and-formats/serialization-tradeoffs/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;DDIA Ch4 core content; underpins the gRPC proxy pattern and API versioning&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Statelessness &amp; State Management</title><link>https://blog.rtshkmr.com/reference/archi/patterns/fundamentals/statelessness/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/fundamentals/statelessness/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;appears in nearly every system design interview&lt;/em&gt;&lt;/p&gt;</description></item><item><title>API Design</title><link>https://blog.rtshkmr.com/reference/archi/core/concepts/api-design/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/core/concepts/api-design/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;the craft of designing APIs; shows engineering judgement, not just pattern knowledge&lt;/em&gt;&lt;/p&gt;</description></item><item><title>CAP Theorem &amp; PACELC</title><link>https://blog.rtshkmr.com/reference/archi/patterns/reliability-and-consistency/cap-theorem-and-pacelc/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/reliability-and-consistency/cap-theorem-and-pacelc/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;the foundational impossibility result and its more nuanced successor&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Exactly-Once Semantics</title><link>https://blog.rtshkmr.com/reference/archi/patterns/domain-specific/exactly-once-semantics/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/domain-specific/exactly-once-semantics/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;the holy grail of distributed message processing; critical for payments&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Idempotency</title><link>https://blog.rtshkmr.com/reference/archi/patterns/fundamentals/idempotency/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/fundamentals/idempotency/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;critical for payment systems, Stripe&amp;rsquo;s public API design is built on this&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Protocol Choices</title><link>https://blog.rtshkmr.com/reference/archi/patterns/encoding-and-formats/protocol-choices/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/encoding-and-formats/protocol-choices/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;REST vs gRPC vs GraphQL is a standard interview question&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Data Modelling</title><link>https://blog.rtshkmr.com/reference/archi/core/concepts/data-modelling/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/core/concepts/data-modelling/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;the first design decision that cascades into everything else: scaling, consistency, query performance&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Failure &amp; Partial Failures</title><link>https://blog.rtshkmr.com/reference/archi/patterns/fundamentals/failure-and-partial-failures/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/fundamentals/failure-and-partial-failures/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;the defining characteristic of distributed systems&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Idempotency Keys</title><link>https://blog.rtshkmr.com/reference/archi/patterns/domain-specific/idempotency-keys/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/domain-specific/idempotency-keys/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;Stripe&amp;rsquo;s public API is built on this; the implementation of idempotency for APIs&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Quorum Reads &amp; Writes</title><link>https://blog.rtshkmr.com/reference/archi/patterns/reliability-and-consistency/quorum-reads-writes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/reliability-and-consistency/quorum-reads-writes/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;the mathematical foundation for consistency in replicated systems&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Sharding Strategies</title><link>https://blog.rtshkmr.com/reference/archi/patterns/scaling-and-performance/sharding-strategies/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/scaling-and-performance/sharding-strategies/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;how to split data across multiple databases when one isn&amp;rsquo;t enough&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Consistent Hashing</title><link>https://blog.rtshkmr.com/reference/archi/patterns/scaling-and-performance/consistent-hashing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/scaling-and-performance/consistent-hashing/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;minimises data movement when nodes are added or removed&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Back-of-Envelope Estimation</title><link>https://blog.rtshkmr.com/reference/archi/patterns/fundamentals/estimation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/fundamentals/estimation/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;expected in every system design interview; grounds design decisions in numbers&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Cache Patterns</title><link>https://blog.rtshkmr.com/reference/archi/patterns/scaling-and-performance/cache-patterns/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/scaling-and-performance/cache-patterns/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;the primary tool for read scaling; multiple patterns with different consistency guarantees&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Two-Phase Commit (2PC)</title><link>https://blog.rtshkmr.com/reference/archi/patterns/reliability-and-consistency/two-phase-commit/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/reliability-and-consistency/two-phase-commit/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;the classical distributed transaction protocol and why it&amp;rsquo;s limited&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Cache Invalidation</title><link>https://blog.rtshkmr.com/reference/archi/patterns/scaling-and-performance/cache-invalidation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/scaling-and-performance/cache-invalidation/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;&amp;ldquo;There are only two hard things in CS: cache invalidation and naming things&amp;rdquo;&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Saga Pattern</title><link>https://blog.rtshkmr.com/reference/archi/patterns/reliability-and-consistency/saga-pattern/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/reliability-and-consistency/saga-pattern/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;the distributed transaction pattern for microservices; critical for Stripe payment flows&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Sync vs Async Communication</title><link>https://blog.rtshkmr.com/reference/archi/patterns/communication-and-apis/sync-vs-async/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/communication-and-apis/sync-vs-async/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;the most fundamental inter-service communication decision&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Message Queue Patterns</title><link>https://blog.rtshkmr.com/reference/archi/patterns/communication-and-apis/message-queue-patterns/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/communication-and-apis/message-queue-patterns/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;queues are the backbone of async architectures&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Rate Limiting &amp; Backpressure</title><link>https://blog.rtshkmr.com/reference/archi/patterns/scaling-and-performance/rate-limiting-and-backpressure/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/scaling-and-performance/rate-limiting-and-backpressure/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;definitely Stripe territory; protecting services from overload&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Timeout Strategies</title><link>https://blog.rtshkmr.com/reference/archi/patterns/reliability-and-consistency/timeout-strategies/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/reliability-and-consistency/timeout-strategies/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;the most fundamental reliability mechanism; every network call needs one&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Choreography vs Orchestration</title><link>https://blog.rtshkmr.com/reference/archi/patterns/communication-and-apis/choreography-vs-orchestration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/communication-and-apis/choreography-vs-orchestration/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;staff-level framing question: how do multi-service workflows coordinate?&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Circuit Breaker</title><link>https://blog.rtshkmr.com/reference/archi/patterns/reliability-and-consistency/circuit-breaker/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/reliability-and-consistency/circuit-breaker/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;prevents cascading failures by stopping calls to a failing service&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Retry with Backoff &amp; Jitter</title><link>https://blog.rtshkmr.com/reference/archi/patterns/reliability-and-consistency/retry-with-backoff/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.rtshkmr.com/reference/archi/patterns/reliability-and-consistency/retry-with-backoff/</guid><description>&lt;p&gt;🔴 P0 &amp;mdash; &lt;em&gt;the default error recovery mechanism; Stripe definitely asks about this&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>