Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
Production RAG Architecture: Ingestion and Query Pipelines, and Why Minimal RAG Breaks
On a real document set, minimal RAG answered only 20 of 30 questions correctly; most failures come from retrieval, chunking, stale data and unauthorized documents rather than the model. Using Bookstore's Turkish documents we classify the failures, separate the ingestion and query pipelines, and build a query pipeline skeleton with a permission filter and a trace log.
Choosing an Embedding Model: Dimensions, Multilinguality, Turkish and Cost
Choose an embedding model by measuring it in your own language on your own question set, not by the leaderboard average: on the same content nomic-embed-text ranked the right section first for 26 of 30 questions in English but only 16 in Turkish. We measure with recall@k and MRR and look at prefixes, Matryoshka dimensions, storage, silent truncation and the risk of old vectors after a model switch, with real output.
Chunking Strategies: Token-Based, Header-Based, Semantic, Overlap and Contextual Retrieval
There is no single best chunk size; choose a strategy by measuring recall and the context budget together. On the same 30 Turkish questions, 64-token windows ranked the right section first 19 times and header-based chunks 16 times; 256 tokens raised recall@5 to 28 but grew the prompt to 1,122 tokens. We compare fixed size, overlap, semantic, parent-child and Contextual Retrieval with gemma3:4b using real measurements.