Бэкенд каталога стримингового сервиса: CRUD медиаконтента с вложенными сезонами и эпизодами, полнотекстовый поиск с опечатками и фильтрами, watchlist пользователя. Требование: поиск не должен быть единой точкой отказа, а переиндексация не должна останавливать сервис.
MongoDB как источник истины с гибкой схемой и optimistic concurrency. Elasticsearch как read-проекция: full-text, fuzziness, фильтры, highlight. Reindex через alias-swap без даунтайма, с проверкой сходимости. Слои api → application → domain → infrastructure, порты и адаптеры, поэтому хранилище и поисковый движок заменяются без правки бизнес-логики.
Если Elasticsearch недоступен, CRUD продолжает работать, поиск деградирует предсказуемо. 95 автотестов, GitHub Actions CI, Docker Compose. Документация на русском и английском. Подход переносится на любой каталог: товары, объявления, документы.