Size: a a a

Software Design/Architecture/Zen

2020 December 18

k

knopkod4v in Software Design/Architecture/Zen
Sergey Protko
можно послать сообщение, роутинг на клиенте (то есть сначала мы узнаем кто сообщение будет обрабатывать и для каждого ресипиента отправляем в кролика отдельный энвелоп с ресипиентом, это существенно упрощает все на свете). Буферизация сообщения до окончания работы обработчика. Саги собственно, таймауты для саг, ретраи с бэкофом (пока таймауты захардкожены но есть возможность для отдельных ресипиентов выставлять свои ретрай полиси), dead letter для "совсем не вышло"...
но не получается ли тут, что отправитель знает о получателях? В том смысле, что при изменении получателей надо будет изменять код отправителей?
источник

MM

Maksim Masiukevich in Software Design/Architecture/Zen
knopkod4v
но не получается ли тут, что отправитель знает о получателях? В том смысле, что при изменении получателей надо будет изменять код отправителей?
Так-то сервисбас в момент отправки тоже уже знает, кто будет сообщение получать
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
knopkod4v
но не получается ли тут, что отправитель знает о получателях? В том смысле, что при изменении получателей надо будет изменять код отправителей?
не есть просто централозовнное айпи внещних собещнеий
в котором описано назвние сообщение и структура
Тоесть они связаны схемой сообщений плюс за ними закреплен один и только один родитель
Тоесть родитель рожает по схеме в SNS
те кому надо подписываются автоматически по маппингу
источник

k

knopkod4v in Software Design/Architecture/Zen
Maksim Masiukevich
Так-то сервисбас в момент отправки тоже уже знает, кто будет сообщение получать
каким образом?
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
Sergei Baikin
О мне тоже все самому пришлось писать
У себя еще перепроигрывание сообщений добавил

Мапинг сделал чтобы из вне принимать и внутри уже перводить во внутрение собщения с известными структурками и обработчиками (ну тоесть из одного внешнего создается сообщений по количеству внутрених обработчиков)

Добавил возможность отправлять через корутины асинхронно
ибо когда надо запулить пару миллионов синхронно очень долго да и массивами кидатся такое себе (люди не знают что оно там асинхронно внутри котрые используют)
А еще прикрутил чтобы разные хэндеру можно было в разные транспорты роутить
Однако очень помогает приоретизировать те или иные обработчики
источник

MM

Maksim Masiukevich in Software Design/Architecture/Zen
knopkod4v
каким образом?
Черная магия, офк. У тебя на исходящие сообщения точно такой же роутинг, как и на входящие. Можно кидать в разные транспорты, разным получателям. Да хоть во все транспорты сразу для 1 сообщения, и в девнулл для другого
источник

MM

Maksim Masiukevich in Software Design/Architecture/Zen
Степу потыкай палочкой, расскажет) он был основным заказчиком роутинга)
источник

MM

Maksim Masiukevich in Software Design/Architecture/Zen
Но это делается на этапе конфигурации все. В рантайме ты маршруты доставки изменить не можешь

Черевато
источник

MM

Maksim Masiukevich in Software Design/Architecture/Zen
Точнее как... Технически а рамках 1 транспорта можно и в рантайме наебать систему, но эт надо немного захотеть
источник

SP

Sergey Protko in Software Design/Architecture/Zen
knopkod4v
но не получается ли тут, что отправитель знает о получателях? В том смысле, что при изменении получателей надо будет изменять код отправителей?
инфраструктура знает о получателях, отправитель ничего не знает
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Sergei Baikin
О мне тоже все самому пришлось писать
У себя еще перепроигрывание сообщений добавил

Мапинг сделал чтобы из вне принимать и внутри уже перводить во внутрение собщения с известными структурками и обработчиками (ну тоесть из одного внешнего создается сообщений по количеству внутрених обработчиков)

Добавил возможность отправлять через корутины асинхронно
ибо когда надо запулить пару миллионов синхронно очень долго да и массивами кидатся такое себе (люди не знают что оно там асинхронно внутри котрые используют)
ну вот мне еще это предстоит... пока просто такой вот базовый функционал без которого ну никак
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Sergei Baikin
А еще прикрутил чтобы разные хэндеру можно было в разные транспорты роутить
Однако очень помогает приоретизировать те или иные обработчики
ну вот у меня есть юзкейс для вэбхуков но я думаю буду это отдельно делать, не привязываясь именно к мессаджингу
источник
2020 December 21

D

Dos in Software Design/Architecture/Zen
Всем привет! Такой вопрос интересный, наверное, слишком простой, но хочу уточнить как лучше правильно сделать.

Есть система некоммерческих организаций. В данной системе есть члены. Членами могут быть физ лица, юридические лица и общественные объединения (какой-то коллектив). Из-за этих типов есть расхождение в полях. Например, у физ лиц есть дата рождения, у юр лиц нет. У юр лиц есть огрн у физ нет. И т д

Вопрос простой: нужно ли разделять эти типы на разные сущности или это все Member?

Наверное мою систему можно сравнить с какой-то CRM где есть клиенты.
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
да
источник

SM

Sergey Milimko in Software Design/Architecture/Zen
На самом деле и так и сяк может быть. Именно по этому подобные вопросы бесполезны.
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
Dos
Всем привет! Такой вопрос интересный, наверное, слишком простой, но хочу уточнить как лучше правильно сделать.

Есть система некоммерческих организаций. В данной системе есть члены. Членами могут быть физ лица, юридические лица и общественные объединения (какой-то коллектив). Из-за этих типов есть расхождение в полях. Например, у физ лиц есть дата рождения, у юр лиц нет. У юр лиц есть огрн у физ нет. И т д

Вопрос простой: нужно ли разделять эти типы на разные сущности или это все Member?

Наверное мою систему можно сравнить с какой-то CRM где есть клиенты.
Сущности не нужны избавьтесь от них
https://udidahan.com/2012/03/05/dont-try-to-model-the-real-world-it-doesnt-exist/
источник

v

vorobyoff in Software Design/Architecture/Zen
Dos
Всем привет! Такой вопрос интересный, наверное, слишком простой, но хочу уточнить как лучше правильно сделать.

Есть система некоммерческих организаций. В данной системе есть члены. Членами могут быть физ лица, юридические лица и общественные объединения (какой-то коллектив). Из-за этих типов есть расхождение в полях. Например, у физ лиц есть дата рождения, у юр лиц нет. У юр лиц есть огрн у физ нет. И т д

Вопрос простой: нужно ли разделять эти типы на разные сущности или это все Member?

Наверное мою систему можно сравнить с какой-то CRM где есть клиенты.
Проще узкоспециализировать приложение
источник

v

vorobyoff in Software Design/Architecture/Zen
Для одних котлеты, для других мухи, третьим ещё что то
источник

D

Dos in Software Design/Architecture/Zen
Понял) В принципе зависит от контекста)
источник

ST

Serguei Tarassov in Software Design/Architecture/Zen
Dos
Всем привет! Такой вопрос интересный, наверное, слишком простой, но хочу уточнить как лучше правильно сделать.

Есть система некоммерческих организаций. В данной системе есть члены. Членами могут быть физ лица, юридические лица и общественные объединения (какой-то коллектив). Из-за этих типов есть расхождение в полях. Например, у физ лиц есть дата рождения, у юр лиц нет. У юр лиц есть огрн у физ нет. И т д

Вопрос простой: нужно ли разделять эти типы на разные сущности или это все Member?

Наверное мою систему можно сравнить с какой-то CRM где есть клиенты.
Моделируйте membership. Это Members, а в сущностях ЮрЛицо или ФизЛицо есть ID member-а.
источник