PostgreSQL in depth + Redis · Kafka
Ten steps to a real data platform — indexes, caching, event streams.
- Difficulty
- Advanced
- Lessons
- 10
SELECT and INSERT are easy. At production traffic, most bottlenecks live in indexes · caches · asynchronous queues. This course frames the roles and boundaries of PostgreSQL, Redis, and Kafka.
Who it's for
- Devs who want to answer "why is this query slow?"
- People unsure whether to use Redis for caching, sessions, or locking
- Teams debating whether Kafka is warranted
What you can do afterwards
- Read EXPLAIN and tune indexes
- Run multiple PostgreSQL pools from one app
- Use Redis in its five roles (cache · session · rate limit · pub/sub · distributed lock)
- Vector search with pgvector + HNSW
- Design Kafka topics · consumers · backpressure
- Choose the right tier in a 3-layer cache (edge · Redis · PG)
- Send push notifications — token storage · failure-code handling · multi-device
Flow
From read performance to write recovery
Locate bottlenecks with EXPLAIN and define pool boundaries.
Place pgvector and layered caches according to role and invalidation policy.
Decide whether messaging is justified and design an idempotent pipeline.
Connect backup, restore, topics, and push failures through operational contracts.
The first half (1–5) targets read performance — indexes, pools, caches. The second half (6–10) targets write durability — messages, idempotency, recovery.
Steps
- PostgreSQL deep dive — EXPLAIN · indexes — seq scan vs index · statistics
- Orchestrating multiple pools — domain split · query helpers · transactions
- pgvector + HNSW — vector type · operators · indexes · reproducibility
- Five roles of Redis — cache · session · rate limit · pub/sub · distributed lock
- 3-layer cache strategy — stale-while-revalidate · invalidation · TTL
- Kafka — when · when not — event signatures · partitions · backpressure
- Data pipelines — retries · idempotency — the myth of exactly-once · outbox
- Backup · restore drills — pg_dump · PITR · monthly rehearsal
- Kafka topic design — naming · partitions · Producer/Consumer · DLQ
- Implementing push notifications — Firebase · token storage · failure codes · multi-device
Prerequisites — complete backend-with-spring or python-data-pipeline · basic PostgreSQL CRUD.
Lessons
Other courses
All courses →- Production Engineering — Boundaries, Performance, Recovery, and Delivery in 14 Steps
- Getting Started with a Dev Environment
- From HTML/CSS/JS to React, Next.js, Tailwind
- Build Your First Fullstack App with Next.js 16
- Backend with Spring Boot 4
- Python · FastAPI · Data Pipelines
- AI-native developer tooling — Claude Code · MCP · design tools
- Docker · Caddy · Cloud — 10 deploy options
- Operations console design — many resources in one view
- Local LLM · pgvector · building a RAG chatbot
- Tauri 2 — desktop · mobile in one codebase
- Testing strategy and quality gates
- Web security foundations — JWT · OAuth · OWASP
- Building public-data crawlers
- Monorepo · SSOT · layer separation thinking