I Built a Production-Style RAG Backend — Focused on What Happens When Things Break Most RAG tutorials show you the happy path. Ingest document → generate embeddings → store in vector DB → search → return results. It works great in demos. But what happens when: The worker crashes mid-processing? Kafka replays messages and you get duplicates? The database goes down during ingestion? A malformed document gets stuck in an infinite retry loop? I built SmartSearch to answer those questions — a correctness-first ingestion and retrieval backend designed to handle failures deterministically. The Problem With Most RAG Systems Most RAG implementations are optimized for the happy path. They work well when everything goes right, and fail in unpredictable ways when things go wrong.…