diff --git a/concepts/README.md b/concepts/README.md new file mode 100644 index 0000000..8c88be4 --- /dev/null +++ b/concepts/README.md @@ -0,0 +1,11 @@ +## Привилегия + +Привилегия - единица предоставления услуг конечному пользователю. Список привилегий определяется при разработке сервиса и публикуется\обновляется при каждом запуске сервиса. Ответственен за публикацию своих привилегий непосредственно конечный сервис. Привилегии нужны для создания тарифов, ибо тариф - набор привилегий и их количества, снабженный ценой и общим описанием. +При покупке пользователем тарифа, привилегии, перечисленные в этом тарифе добавляются в аккаунт этого пользователя. "Трату" привилегий и ограничения налагаемые ограниченным количеством той или иной привилегии обрабатывает сам конечный сервис. +При окончании количества привилегии, конечный сервис должен оповестить customer сервис об этом, добавив запись в историю. + +## Аккаунт + +Аккаунт - сущность обеспечивающая связь между customer сервисом и конецчнм продуктовым сервисом. Каждый продуктовый сервис имеет набор тарифов, описывающих ограниченность доступа конкретного аккаунта к услугам, которые предоставляет сервис. При покупке тарифа в customer сервисе, тот публикует данные о купленном тарифе в очередь redpanda, а конечный продуктовый сервис, подписанный на этот топик, получив из очереди информацию о том, что такой-то юзер купил тариф относящийся к нему, должен внести приобретенные привилегии в аккаунт пользователя, купившего тариф. +При использовании услуг продуктового сервиса, он обращается к полям аккаунта, для того чтобы определять, доступна ли этому пользователю данная услуга или же он уже выработал квоту, определённую приобретенным им тарифом. +Так же, в аккаунте хранятся дополнительные настройки, необходимые для взаимодействия пользователя с конечным продуктовым сервисом, но лишние в customer сервисе, т.е. сервисоспецифичые настройки. Например, токены доступа к яндекс диску