[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"glossary-delivery-semantics::ru":3,"gloss-cluster-delivery-semantics::ru":26,"gloss-next-delivery-semantics::ru":9},{"slug":4,"category":5,"name":6,"definition":7,"meta_desc":8,"faq":9,"schema_markup":9,"related":10},"delivery-semantics","data-infra","Семантика доставки (delivery semantics)","Семантика доставки описывает гарантию, которую система обмена сообщениями даёт относительно того, сколько раз сообщение дойдёт до потребителя: не более одного раза, не менее одного раза или ровно один раз. «Не более одного раза» может терять сообщения, но никогда не дублирует. «Не менее одного раза» никогда не теряет сообщение, но после повтора может доставить его несколько раз. «Ровно один раз» — идеал и самое трудное: каждое сообщение приходит один раз, без потерь и дублей.\n\nНа практике большинство очередей и потоков (SQS, Kafka, RabbitMQ) по умолчанию дают «не менее одного раза», потому что гарантировать отсутствие потерь проще, чем отсутствие дублей. Настоящее «ровно один раз» обычно не сквозная магия; это доставка «не менее одного раза» плюс идемпотентные потребители, дедуплицирующие по ключу сообщения.\n\nДля SaaS-разработчиков этот выбор определяет корректность во всём, что списывает деньги или меняет состояние. На практике: считайте, что доставка «не менее одного раза», и делайте обработчики идемпотентными — храните ID обработанного сообщения или используйте upsert, — чтобы повторно доставленное событие «списать карту» не выставило счёт дважды.","Семантика доставки — гарантия того, сколько раз сообщение дойдёт до потребителя: не более раза, не менее раза, ровно раз, — и каждая перекладывает работу на вас.",null,[11,14,17,20,23],{"slug":12,"name":13},"dead-letter-queue","Очередь недоставленных сообщений (DLQ)",{"slug":15,"name":16},"eventual-consistency","Согласованность в конечном счёте (Eventual Consistency)",{"slug":18,"name":19},"message-queue","Очередь сообщений (Message Queue)",{"slug":21,"name":22},"streaming-data-processing","Потоковая обработка данных (Streaming)",{"slug":24,"name":25},"transactional-outbox","Транзакционный outbox (transactional outbox)",[27,31,34,37,40,44,47,50,53,56,60,63],{"slug":28,"category":5,"name":29,"updated_at":30},"acid","ACID","2026-08-24T02:46:37+00:00",{"slug":32,"category":5,"name":33,"updated_at":30},"ann-search","ANN-поиск (приближённый поиск ближайших соседей)",{"slug":35,"category":5,"name":36,"updated_at":30},"backpressure","Обратное давление (backpressure)",{"slug":38,"category":5,"name":39,"updated_at":30},"batch-processing","Пакетная обработка (Batch Processing)",{"slug":41,"category":5,"name":42,"updated_at":43},"bm25","BM25","2026-08-24T02:46:38+00:00",{"slug":45,"category":5,"name":46,"updated_at":30},"cache","Кэш (Cache)",{"slug":48,"category":5,"name":49,"updated_at":30},"cap-theorem","Теорема CAP (CAP theorem)",{"slug":51,"category":5,"name":52,"updated_at":30},"change-data-capture","Захват изменений данных (CDC)",{"slug":54,"category":5,"name":55,"updated_at":30},"chroma","Chroma",{"slug":57,"category":5,"name":58,"updated_at":59},"chunk-overlap","Перекрытие фрагментов","2026-08-24T03:30:02+00:00",{"slug":61,"category":5,"name":62,"updated_at":30},"columnar-storage","Колоночное хранение",{"slug":64,"category":5,"name":65,"updated_at":30},"connection-pooling","Пулинг соединений (Connection Pooling)"]