diff --git a/concepts/README.md b/concepts/README.md index 8d976fa..8a1facb 100644 --- a/concepts/README.md +++ b/concepts/README.md @@ -8,4 +8,10 @@ Аккаунт - сущность обеспечивающая связь между customer сервисом и конечным продуктовым сервисом. Каждый продуктовый сервис имеет набор тарифов, описывающих ограниченность доступа конкретного аккаунта к услугам, которые предоставляет сервис. При покупке тарифа в customer сервисе, тот публикует данные о купленном тарифе в очередь redpanda, а конечный продуктовый сервис, подписанный на этот топик, получив из очереди информацию о том, что такой-то юзер купил тариф относящийся к нему, должен внести приобретенные привилегии в аккаунт пользователя, купившего тариф. При использовании услуг продуктового сервиса, он обращается к полям аккаунта, для того чтобы определять, доступна ли этому пользователю данная услуга или же он уже выработал квоту, определённую приобретенным им тарифом. -Так же, в аккаунте хранятся дополнительные настройки, необходимые для взаимодействия пользователя с конечным продуктовым сервисом, но лишние в customer сервисе, т.е. сервисоспецифичые настройки. Например, токены доступа к яндекс диску +Так же, в аккаунте хранятся дополнительные настройки, необходимые для взаимодействия пользователя с конечным продуктовым сервисом, но лишние в customer сервисе, т.е. сервисоспецифичные настройки. Например, токены доступа к яндекс диску + +Область отвественности аккаунта - хранение данных о пользователе, специфичных для данного сервиса, в том числе, о доступных ему привилегиях. Дублирования информации не происходит - customer сервис хранит только данные о корзине пользователя, о кошельке и историю. При оплате корзины, customer сервис передает продуктовым сервисам данные о оплаченных тарифах и сервисы сами обновляют аккаунт пользователя, который приобрел тариф,добавляя ему соответствующие привелегии. Так же, сам продуктовый сервис следит об окончании той или иной привилегии, о чем оповещает customer сервис. + +Отдельного сервиса для хранения и получения аккаунтов нет и, надеюсь, не будет, ибио это сильно увеличит связность системы - этому сервису придётся знать модель аккаунта каждого подключенного к нему сервиса. + +Примерный список api методов, который должен быть у сервиса для работы с аккаунтом https://penahub.gitlab.yandexcloud.net/pena-services/customer/-/blob/dev/api/openapi/v1/openapi.yaml?ref_type=heads - в секции Account