Event Driven Architecture
Event-driven architecture (EDA) is a software design pattern in which components communicate by producing and consuming events — notifications that something happened — rather than calling each other directly.
42 resources across 3 libraries
Glossary Terms(8)
Microservices
Microservices is an architectural style that structures an application as a collection of small, independently deployable services, each owning a single busine…
Monolithic Architecture
Monolithic architecture is a software design approach where an entire application — its user interface, business logic, and data access layer — is built and de…
Event-Driven Architecture
Event-driven architecture (EDA) is a software design pattern in which components communicate by producing and consuming events — notifications that something h…
CQRS
CQRS (Command Query Responsibility Segregation) is an architectural pattern that separates the operations that change data (commands) from the operations that…
Saga Pattern
The Saga Pattern is a way of managing data consistency across multiple services in a distributed transaction by breaking it into a sequence of local transactio…
Webhooks
A webhook is a mechanism for one application to notify another in real time by sending an HTTP POST request to a pre-configured URL whenever a specific event o…
Azure Event Grid
Azure Event Grid is a fully managed event routing service that delivers events from Azure services, custom applications, and third-party sources to subscriber…
Google Cloud Pub/Sub
Google Cloud Pub/Sub is a fully managed, globally distributed messaging service that lets applications publish and subscribe to asynchronous event streams at s…
Study Notes(2)
Event-Driven Architecture
Understand how producers, consumers, and a message queue or event bus enable asynchronous, decoupled communication instead of synchronous request-response.
Event-Driven Architecture
A design style where services communicate by producing and reacting to events rather than calling each other directly, enabling loose coupling and independent…
Interview Questions(32)
What are the Main Cache Invalidation Strategies?
Cache invalidation removes or refreshes stale cached data using three common strategies: TTL-based expiration (entries auto-expire after a fixed time), explici…
What is the CQRS Pattern and When Should You Use It?
CQRS (Command Query Responsibility Segregation) splits the logic and often the data models used for writing data (commands) from the logic and models used for…
What is Event Sourcing and How Does It Differ From Storing Current State?
Event sourcing stores every change to a system's data as an immutable, ordered sequence of events, and derives the current state by replaying those events, rat…
Observer vs Pub/Sub Pattern
The Observer pattern is a direct, in-process relationship where a Subject holds references to its Observers and notifies them synchronously, while Publish/Subs…
What is a Message Queue?
A message queue is a middleware component that lets a producer publish messages which sit durably in a buffer until a consumer pulls and processes them, decoup…
What is the Publish-Subscribe (Pub/Sub) Pattern?
The publish-subscribe (pub/sub) pattern is a messaging model where publishers send messages to a topic without knowing who receives them, and subscribers regis…
How Would You Design YouTube?
Designing YouTube means splitting the system into an upload/transcoding pipeline that converts raw video into multiple bitrates and resolutions, a metadata ser…
How Would You Design Dropbox?
Designing Dropbox means building a chunked file-storage system where files are split into fixed-size blocks, deduplicated and uploaded individually to blob sto…
How Would You Design a Notification System?
A notification system is designed as an event-driven pipeline where upstream services publish notification events to a queue, a set of channel-specific workers…
How to Design a Distributed Message Queue
A distributed message queue is designed as partitioned, append-only logs replicated across brokers, where producers write to a partition by key, consumers in a…
How to Design an Ad Click Aggregator
An ad click aggregator ingests a high-throughput stream of click events, deduplicates and validates them, then rolls them up into per-ad, per-time-window count…
How to Design a Music Streaming Service Like Spotify
A Spotify-like music streaming service stores audio tracks as pre-transcoded chunked files in object storage served through a CDN, uses adaptive bitrate stream…
How to Design a Polling System?
A polling system (like Slido or Mentimeter) is designed around a write-heavy vote-ingestion path decoupled from a read-heavy results path, using an append-only…
How to Design an Ad Serving System?
An ad serving system is designed around an ultra-low-latency ad-selection path (typically under 100ms) that ranks pre-indexed, targeted candidate ads from an i…
How to Design a Bidding System?
A bidding system (such as a real-time ad auction or an online auction house) is designed around a strongly consistent bid-acceptance path that atomically valid…
How to Design a Real-Time Analytics Dashboard?
A real-time analytics dashboard is designed around a streaming ingestion pipeline that continuously aggregates raw events into pre-computed rollups at multiple…
What is the Saga Pattern?
The saga pattern breaks a distributed transaction into a sequence of local transactions, each owned by a different service, where every step has a correspondin…
What is Event Sourcing?
Event sourcing is a pattern where every change to application state is stored as an immutable sequence of events rather than overwriting a single row, and the…
What is a Dead Letter Queue?
A dead letter queue (DLQ) is a separate holding queue where messages are routed after they repeatedly fail to be processed successfully, so a poison message ca…
What are Distributed Transactions and How Do They Work?
A distributed transaction is a set of operations spanning multiple independent services or databases that must all succeed or all fail together, typically coor…
What is the Outbox Pattern?
The outbox pattern solves the dual-write problem by writing both a business state change and the event describing it into the same local database transaction,…
What is Change Data Capture (CDC)?
Change data capture is a technique for detecting and streaming every row-level insert, update, and delete made to a database as an ordered sequence of events,…
Exactly-Once vs At-Least-Once Delivery: What Is the Difference?
At-least-once delivery guarantees a message is delivered one or more times (never lost, but possibly duplicated), while exactly-once delivery guarantees a mess…
What Are Message Ordering Guarantees?
Message ordering guarantees define whether and how consumers are assured to see messages in the same sequence producers sent them, ranging from no ordering at…
Showing 24 of 32.