Search
Lessons (27)
- Message Queues & RabbitMQ
… The ticket rail is a message queue : - Producer (waiter): puts messages in. - Queue (rail): holds them safely, in …
- Delivery Guarantees: At-Most, At-Least & Exactly Once
Can a message be lost? Delivered twice? Learn Kafka's three delivery semantics, idempotent producers, transactions for read …
- Design a Chat Application
Deliver live messages without losing them by separating durable messages from fan-out, presence and offline notifications. ![Chat …
- Consumers & Consumer Groups
… async ({ topic, partition, message }) = { const eventId = message.headers.eventId.toString(); if (!(await processedEvents.has(eventId))) { // idempotency check await …
- What Is Apache Kafka?
… async ({ partition, message }) = { const order = JSON.parse(message.value.toString()); console.log( partition ${partition} offset ${message.offset}: , order …
- Clean Error Handling
… Custom error classes let them react precisely. js class AppError extends Error { constructor(message, statusCode) { super(message); this …
- Kafka vs RabbitMQ & the Kafka Ecosystem
… Both move messages between systems, but they're built on different ideas. ![RabbitMQ routes and deletes; Kafka stores …
- Service Communication: Sync vs Async
Should services call each other directly or talk through events? Compare request/response with messaging, orchestration with choreography …
- Design a Reliable Notification System
Deliver email, SMS, push and in-app messages with preferences, isolation, idempotency, provider failover and auditable states. ![Notification …
- Data in Microservices: Sagas & the Outbox Pattern
… idempotent consumers The receiving side records which message IDs it has processed, in the same transaction as its …
- Proxies, APIs and Real-Time Protocols
… A queue is not a WebSocket, and a WebSocket is not a durable message log.
- Topics, Partitions & Offsets
… Why topics are split into partitions, how message keys decide the partition and keep ordering, how offsets work …
- Stacks & Queues
… task scheduling, message brokers, the event loop, BFS.
- Structural Patterns: How to Connect Objects
… logger.log(level, message) // The new library offers: winston.write({ severity, text, ts }) class WinstonAdapter { constructor(winston) { this …
- REST vs GraphQL vs gRPC
… returns (stream OrderStatus); // server streaming } message GetOrderRequest { string order id = 1; } message Order { string id = 1; string customer …
- REST API Design
… 422, "detail": "The request body has 2 invalid fields.", "errors": [ { "field": "email", "message": "must be a valid email …
- Database Relations & Foreign Keys
… id, course id) Application validation gives a friendly message; constraints protect the rule when another service, script or …
- Hexagonal Architecture (Ports & Adapters)
… The application core sits in the middle; everything else (web UI, REST API, tests, database, email, message queues …
- Which Pattern Do I Need?
… service mesh sidecar Adapter Anti-corruption layer Command Message queues, CQRS commands Mediator Saga orchestrator Chain of Responsibility …
- How a Web Request Works
… reliable connection, TLS encrypts it, HTTP carries the message. - HTTP methods have meanings: GET reads, POST creates, PUT …
- Behavioral Patterns I: Observer, Strategy, Command, State
… store.subscribe , React state → re-render, Kafka and message queues at a system level. ⚠️ Always unsubscribe when a …
- SQL vs NoSQL Databases
… columns, spread over many servers Time series, IoT, messaging at massive scale Cassandra Graph Nodes and relationships Social …
- TypeScript Essentials
… error message Impossible states (like "loading and has an error") can't even be written. That's a …
- Kafka Producers
… CompressionTypes.GZIP, messages: [ { key: order.id, // keeps all events for this order in order value: JSON.stringify({ orderId …
- MVC, MVP & MVVM
… onLoginClicked()" P[🎤 Presenter] P -- reads / updates M[📦 Model] P -- "view.showError('…')" V ts interface LoginView { showError(message: string …
- Serverless Architecture
… uploaded<br/ (S3)"] -- F2["λ makeThumbnail"] Q["📨 Queue message<br/ (SQS)"] -- F3["λ sendEmail"] C["⏰ Schedule<br/ (cron …
- Vertical Slice Architecture & the Modular Monolith
… dtos/ … ├── search-products/ └── update-price/ "Add a gift-message field to orders" now touches one folder instead of …