Page 8

Task Queues & Message Brokers: Celery, RabbitMQ, and Kafka Untangled
Why does sending an email block your API? A mastery guide to async task queues (Celery/Django-Q), message brokers (RabbitMQ), and event streaming (Kafka).

Observability: Logs vs. Metrics vs. Tracing — The 'Doctor's Kit' Mental Model
Your app is slow. Is it the DB? The queue? The network? A mastery guide to the three pillars of observability and how they work together.

Prompt Engineering: The 'Director & Actor' Mental Model
Why does 'be concise' produce worse results than '3 bullet points'? A mastery guide to system prompts, few-shot examples, and chain-of-thought.

Rate Limiting & Circuit Breaker: The 'Traffic Light & Fuse Box' Mental Model
How do you stop one bad client from taking down your entire API? A mastery guide to rate limiting strategies, circuit breakers, and resilience patterns.

Why Cheap Hardware Won't Make Redis Replace a Core Database
As hardware gets cheaper, why not use Redis as the main database? The short answer: because the limitation isn't speed. It's guarantees and data semantics.

REST vs. GraphQL vs. gRPC: The 'Restaurant Menu' Mental Model
Why does GraphQL exist if REST works fine? A mastery guide to API protocols, when to use each, and how gRPC changes the game for internal services.

Vector Databases & Embeddings: The 'Semantic Atlas' Mental Model
How does Spotify know you'll like this song? A mastery guide to embeddings, cosine similarity, and vector databases (Pinecone, Weaviate, pgvector).

When to Use Classes vs. Functions in Python: A Design Checklist
A repeatable mental checklist for Python developers to decide when to use classes, functions, instance state, and dependency injection.

When to Use Dataclasses, Generators, and Try/Except in Python
Phase 2 of the mental checklist for Python developers. Navigating dictionaries vs dataclasses, eager evaluation vs lazy execution, and error handling philosophies.