Как стать автором
Обновить

Как DDD помог нам построить новые ревизии в пиццериях

Время на прочтение19 мин
Количество просмотров25K
Всего голосов 30: ↑30 и ↓0+30
Комментарии7

Комментарии 7

Если не секрет, как transactional outbox реализуете чуть более подробно? Я так понял, что сразу после коммита достаёте сообщение и пересылаете в очередь, но что происходит если какие-то сообщения не были отправлены? Доотправляете фоном? Как в этом случае несколько экземпляров приложения синхронизируются между собой, чтобы не обрабатывать одни и те же сообщения несколько раз и при этом сохранять порядок отправки сообщений?

Все правильно поняли: если сообщение не дошло до брокера, то оно не удаляется из очереди. Обычно в фоне крутится джоба (для упрощения 1 инстанс, иначе их надо синхронизировать на уровне базы данных), которая переотправит такие сообщения. Код потребителей должен быть готов к дубликатам и быть идемпотентным. Помимо этого, вместе с сообщением всегда идет версия объекта. Если потребителю пришло что-то отличное от current version + 1, то он не принимает такие сообщения, возвращая их обратно в очередь. Так мы реализуем коммутативность потребителей.

Когда додо пришла в Минск, пицца сразу была вкусной, сочной с обилием начинки… а потом видимо включился режим экономии, и все стало гораздо печальнее.
Вывод относительно статьи: сколько кода не пиши, пицца от этого вкуснее не станет…

Просто ребята автоматизировали проверку качества. :)

когда у меня стояла задача контроля над распределёнными ресурсами и я увидел что на инвентаризацию тратится слишком много времени, я ввёл собственную систему штрих-кодов, в которых закодирован код продукта, тип упаковки, дата изготовления. теперь инвентаризацию можно делать не думая — просто пропикать всё штрих-код сканером, и ничего не надо вводить вручную.
у если для каждого экземпляра продукта ввести уникальный номер то можно вобще избавиться от пересортицы и автоматизировать склад. если прикрутить это всё к весам то будет выглядеть так: положили на весы, пикнули — всё, товар в базе. попробуйте, мне очень помогло. если какая-то помощь нужна пишите без проблем, дам код и все наработки <3 любимая пицца

Класс! Передам нашим разработчикам))

В команде «добавление замера» есть следующие поля:

единица измерения: кг/г, л/мл, штуки;

Зачем в замере единицы измерения? При желании можно сыр померить в мл, а вино в кг? Почему не подтягивается из "идентификатора сырья"?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий