данных, получил очень много информации ) а вот теперь не совсем понимаю и в голове не укладывается, как работать с БД?
при таком положении дел: Есть сервис пользователи, подписки и каждого своя бд, чтобы вытащить пользователей с подпиской в монолите делал что-то подобное select users.id from users inner join subscriptions ON subscriptions.user_id = users.id where subscriptions.expires_at > NOW(), а когда это разные сервисы и может быть фальтрация данных... не понимаю вообще
Неужели нужно сначала вытащить например 10 пользователей затем залесть в сервис подписок и там посмотреть подписаны или нет? что-то проблемное получается
У каждого из них есть свое достоинства и недостатки Ходить в каждый сервис и затем мерджить данные — нормальная практика при определенных обстоятельствах Но есть и другие подходы
мержить не проблем, проблема именно в тесной связи проверки(типа подписки), так как вытащив 10 пользователей заранее никак не узнать подписаны они или нет. Спасибо, в целом вектор ясен и более склоняюсь к типа "репликации", только это дорого стоит скорее всего, буду изучать
вариантов немного, можно кешировать данные из другого сервиса, но тогда сталкиваемся с проблемой устаревания/инвалидации. Либо же сделать viewmodel composition: параллельно идем во все нужные сервисы и аггрегируем результат. Если норм с английским, то вспомнился хороший доклад, там дядька как раз эту проблему обсуждает с примером "Корзины" в амазон. Примеры кода правда на c#, но их мало, а главное тут сама идея https://youtu.be/hev65ozmYPI
Интересно, придется разобраться и с английским ) чтение еще пойдет, а на слух..) спасибо
Обсуждают сегодня