Size: a a a

Ваdоо PHP Мееtuр

2020 May 31

М

Максим in Ваdоо PHP Мееtuр
Ilya
Думаю что тогда объединять их не актуально
Понял) Тогда другой вопрос. Уместно ли их хранить в словарях или их стоит вынести в отдельный микросервис?
источник

I

Ilya in Ваdоо PHP Мееtuр
Мне кажется в формате словарях норм, но не претендую на объективность
источник

М

Максим in Ваdоо PHP Мееtuр
Спасибо) И ещё последний вопрос. У меня участники и представители в регистрации могут создаваться другим пользователем, например, представителем. То есть участника могут регистрировать хоть родители.

Сейчас я сделал так, что всех людей в системе создаём в Person, а потом связываем Person с Аккаунтом. Person !== User.

Имеет ли смысл разделить с дублированием данных? И в регистрации указывать не только связь на PersonID, но и свои данные: фио, дата рождения, пол и так далее. То, что нужно этому микросервису.

Получится так, что создаём участника и если нужно связываем с аккаунтом. Но для работы этого микросервиса есть все данные. В таком случае мы можем разделить связанность в микросервисах

Надеюсь понятно объяснил)
источник

I

Ilya in Ваdоо PHP Мееtuр
Если все правильно понял то думаю тут больше вопрос к бизнесовой логике, нужно ли хранить персональные данные и там и там
источник

I

Ilya in Ваdоо PHP Мееtuр
Интересно узнать мнения и других, не считаю себя профи в таких вопросах
источник

М

Максим in Ваdоо PHP Мееtuр
Ilya
Если все правильно понял то думаю тут больше вопрос к бизнесовой логике, нужно ли хранить персональные данные и там и там
С точки зрения персональных данных, конечно, лучше в одном месте. С этим не поспоришь. Но тогда все микросервисы работающие хоть как-то с человеком будут зависеть от Person. Просто видел такие практики в ограниченном контексте когда сущность User везде разная и имеет свои данные. Например, в комментариях это Комментатор и ему нужно только имя. В блоге это Автор и ему нужно только имя. В доставке нужен только телефон и имя. В итоге мы получаем в каждом микросервисе свою сущность человека и необходимы данные для микросервиса. И теряется связь.
источник

ДК

Дмитрий Красноруцкий... in Ваdоо PHP Мееtuр
Не читал всю переписку, но дублировать данные в микросервисах, приведёт у расинхронизации этих данных, надо или учится жить с этим, или не дублировать - но тогда скажется на скорости работы
источник

ДК

Дмитрий Красноруцкий... in Ваdоо PHP Мееtuр
Вообще делая микросервисы надо очень хорошо задумываться сколько раз один сервис будет обращаться к другому в рамках одного сценария запроса от пользователя.  Http запросы очень долгая штука
источник

М

Максим in Ваdоо PHP Мееtuр
Дмитрий Красноруцкий
Не читал всю переписку, но дублировать данные в микросервисах, приведёт у расинхронизации этих данных, надо или учится жить с этим, или не дублировать - но тогда скажется на скорости работы
Раньше я делал подобную систему без микросервисов. В Монолите. Где были границы ограниченных контекстов.

Синхронизация данных не всегда нужна. Например, комментатор может быть не только имя фамилия, но и ник, просто имя. Такие данные мы можем не синхронизировать. В принципе так же как и автора на блоге. А все одинаковые данные можем синхронизировать через события. Я так раньше делал без микросервисов, но с микросервисами ни разу.

Поэтому и чешу голову) и не могу принять решение как лучше. И там и там минусы и плюсы)
источник

М

Максим in Ваdоо PHP Мееtuр
Дмитрий Красноруцкий
Вообще делая микросервисы надо очень хорошо задумываться сколько раз один сервис будет обращаться к другому в рамках одного сценария запроса от пользователя.  Http запросы очень долгая штука
И это тоже понимаю. Поэтому и говорю, что у меня практически все микросервисы будут завязаны на Person. Так как практически везде люди и их много. При этом разные роли. Но и не думаю что это плохо. ВК как то живет и ничего)
источник

ДК

Дмитрий Красноруцкий... in Ваdоо PHP Мееtuр
Просто может легко получится, что в одном сервисе есть пользователь, а другой микросевис будет думать что его нет
источник

ДК

Дмитрий Красноруцкий... in Ваdоо PHP Мееtuр
Это надо принять и с этим жить
источник

ДК

Дмитрий Красноруцкий... in Ваdоо PHP Мееtuр
События между сервисами могут потеряться на раз. Плюс они могут дойти не сразу, если строить на очередях
источник

ДК

Дмитрий Красноруцкий... in Ваdоо PHP Мееtuр
Если бизнес логика такое позволяет или строить дополнительные механизмы досинхронизации данных..  то все ок
источник

ДК

Дмитрий Красноруцкий... in Ваdоо PHP Мееtuр
А на счёт как лучше, все зависит от задачи и от цены ошибки, если  скажем 1 из миллиона пользователей потеряется, не сможет записаться  на  сколько это плохо?
источник

М

Максим in Ваdоо PHP Мееtuр
Дмитрий Красноруцкий
А на счёт как лучше, все зависит от задачи и от цены ошибки, если  скажем 1 из миллиона пользователей потеряется, не сможет записаться  на  сколько это плохо?
Понял)) Наверное, лучше хранить изначально все в Person, а с ростом системы подумать стоит ли разделить. Разделить всегда легче, чем потом собрать. Особенно если таких данных будет много и они могут быть продублированы)

Спасибо за ночную помощь!)))))
источник

ДК

Дмитрий Красноруцкий... in Ваdоо PHP Мееtuр
Ох... разделить вообще не легче )
источник

ДК

Дмитрий Красноруцкий... in Ваdоо PHP Мееtuр
Слишком много всего будет завязано на этих данных
источник

ДК

Дмитрий Красноруцкий... in Ваdоо PHP Мееtuр
Авито уже несколько лет занимается разделением судя по их рассказам ))
источник

ДК

Дмитрий Красноруцкий... in Ваdоо PHP Мееtuр
Просто принимается решение и с ним живешь, предугадать все возможные сценарии - нельзя,  сегодня бизнес требования одни, завтра другие,   И как бы не старался, костыли будут )
источник