Search the practice set
126 questions, 454 terms and 400 topics in 20 areas.
60 results for “Sharding Patterns”
Enterprise Integration Patterns
A catalogue of named, composable messaging patterns — router, translator, aggregator, splitter, filter, dead letter channel — that gives integration work a shared vocabulary.
Figma's Postgres Sharding
Figma delayed sharding for years using replicas and vertical partitioning, then sharded Postgres horizontally without downtime using logical shards and a proxy layer.
Pinterest's MySQL Sharding
Pinterest sharded MySQL by embedding the shard ID inside every primary key, making any object's location computable from its ID alone with no lookup service.
Sharding
Splitting one dataset across multiple independent databases by a partition key, so that each holds a disjoint subset.
Shuffle Sharding
Assigning each customer a random combination of workers rather than a fixed shard, so that any two customers rarely share their whole set.
Architecture Style
A named, coarse-grained way of organising a whole system, as distinct from a pattern that solves one recurring problem inside it.
Backend for Frontend
A separate, narrow backend per client experience, which aggregates and reshapes downstream services for exactly that client's needs.
CQRS
Separating the model used to change state from the model used to read it, so each can be optimised independently.
Cell-Based Architecture
Partitioning a service into complete, independent copies of itself, each serving a subset of customers, so a failure is bounded to one cell.
Competing Consumers
Multiple identical consumers reading from one queue, so throughput scales with consumer count and work is distributed automatically.
Consistent Hashing
A hashing scheme where adding or removing a node remaps only a small fraction of keys, instead of nearly all of them.
Event Sourcing
Storing the full sequence of state-changing events as the system of record, and deriving current state by replaying them.
Event-Driven Architecture
A style in which components communicate by emitting and reacting to facts about what happened, rather than by calling each other.
Hexagonal Architecture
Putting the domain at the centre and letting everything external — UI, database, queues — attach through ports implemented by replaceable adapters.
Hot Partition
One partition receiving disproportionate traffic, so the system saturates at a fraction of its aggregate capacity.
Layered Architecture
Organising code into horizontal layers — presentation, application, domain, data — where each layer may only call the one beneath it.
Modular Monolith
A single deployable unit internally partitioned into modules with enforced boundaries, explicit interfaces and no shared internal state.
Outbox Pattern
Writing an outgoing message into a table in the same transaction as the business change, and relaying it to the broker separately, so the two cannot diverge.
Pattern Recognition
Recognising that a novel-looking problem is an instance of one you have seen before, and knowing which parts of the previous solution transfer.
Pipes and Filters
Decomposing processing into independent steps connected by channels, each transforming its input and passing it on.
Prime Video's Move Back to a Monolith
Amazon Prime Video consolidated a serverless, distributed audio/video monitoring service into a single process and reported a 90% cost reduction — the most-cited example of micros…
Publish/Subscribe
A messaging pattern where each published message is delivered to every interested subscriber, rather than to one competing worker.
SQL vs NoSQL
A choice driven by access patterns, consistency requirements and query flexibility — not by data volume, which is the reason usually given.
Service Mesh
An infrastructure layer of sidecar proxies that handles service-to-service networking — mTLS, retries, timeouts, routing, telemetry — outside the application.
Shopify's Pods and Modular Monolith
Shopify handles Black Friday scale with isolated pods — complete stacks each serving a subset of merchants — while keeping the application itself a deliberately modular monolith.
Sidecar
Deploying a helper process alongside the main application in the same unit, to supply cross-cutting behaviour without changing the application.
You must choose a data store this week. The product team cannot tell you the expected query patterns or the growth rate. What do you do?
What the interviewer is testing How you behave when the information you would like does not exist — which is the normal condition, not the exception. Both "refu
A multi-tenant SaaS product has outgrown one database. You must shard. How do you choose the partition key, and what makes this decision so expensive to get wrong?
What the interviewer is testing Whether you exhaust cheaper options first, and whether you understand that a shard key is close to irreversible. First: do not s
Design a URL shortener handling 100 million new links per month and 10 billion redirects. Where is the real difficulty?
What the interviewer is testing The classic warm up. What is being assessed is not whether you can shorten a URL — it is whether you do capacity arithmetic befo
Orders must trigger inventory reservation, a confirmation email, an analytics record and a fraud check. Queue, topic, or both — and what breaks if you choose wrong?
What the interviewer is testing Whether you know the difference between work distribution and notification — a distinction that produces one of the most confusi
Prime Video reported a 90% cost cut by consolidating a serverless distributed service into one process. Does that mean microservices were the wrong choice, and what is the actual decision rule?
What actually happened The Prime Video Video Quality Analysis team's 2023 post describes an audio/video monitoring service built as Step Functions orchestrating
Sharding Patterns
Directory versus embedded keys, logical shards and rebalancing.
Architecture Patterns
General material on architectural patterns and their trade-offs.
Coexistence Patterns
Running old and new together for years without corrupting either.
Design Patterns
Reusable solutions at code level, and when they become ceremony.
Integration Patterns
Routers, translators, splitters, aggregators and dead letter channels.
Legacy Integration Patterns
Anti-corruption layers, adapters and CDC against systems that cannot change.
Partitioning & Sharding
Splitting data across machines, and the one-way door of a partition key.
API Gateway
A single entry point for policy, routing and protocol translation.
Anti-Corruption Layer
Translating a foreign model at the boundary so it does not leak in.
Architecture Styles
System-level organising shapes, and how they differ from problem-level patterns.
Backend for Frontend
A narrow backend per client experience, owned by that client's team.
CQRS
Separate models for writing and reading, each optimised for its job.
Cell-Based Architecture
Complete isolated copies each serving a subset of customers.
Cloud Storage
Object, block and file storage, and the access patterns each suits.
Competing Consumers
Scaling throughput with instances, at the cost of ordering.
Event Sourcing
The event log as the system of record, with state as a projection.
Event-Driven Architecture
Publishing facts, and trading comprehensibility for decoupling.
Layered Architecture
The default shape, its clarity, and where a technical partition fails.
Materialized Views
Precomputed query results, refreshed incrementally or in full.
Orchestration vs Choreography
A coordinator that knows the flow, or services that react to events.
Outbox
Making the event atomic with the business write it describes.
Pipes and Filters
Independent transformation steps composed into a pipeline.
Publish/Subscribe
Broadcast to every subscriber, as distinct from work distribution.
SQL vs NoSQL
Decided by access patterns and query flexibility, not by data volume.
Saga
Local transactions with compensating actions across services.
Service Boundaries
Drawing lines along change patterns rather than technical layers.
Service Mesh
Sidecars applied estate-wide, and the scale at which that pays.
Sidecar & Ambassador
Cross-cutting behaviour in a co-deployed process.