Домен Identity владеет одним основным сервисом:
Identity service
Код: services/auth/identity-service/
Язык: Python 3.12+
Протокол: gRPC
Статус: В разработке
Ответственность
- Canonical user identity registry
- Операции создания, получения, обновления пользователей
- Управление идентификаторами (email/phone)
- Верификация идентификаторов через OTP-коды
- Публикация событий жизненного цикла в Kafka
Архитектура
Следует Clean Architecture с четким разделением слоев:
- Core (
core/) — domain entities, protocols, domain services user/— User aggregate, UserRepository protocolidentifier/— Identifier aggregate, IdentifierRepository protocol-
verification_challenge/— VerificationChallenge entity -
Use Cases (
use_cases/) — application layer users/create— создание нового пользователяidentifiers/attach— привязка email/phone к пользователюverification/start— инициация верификации идентификатора-
verification/confirm— подтверждение верификации через OTP -
Infrastructure (
infra/) — implementations db/orm/— SQLAlchemy modelsrepositories/— repository implementations (PostgresUserRepository)kafka/— Kafka topics configuration-
uow.py— Unit of Work pattern -
API (
api/) — gRPC servicers servicers/v1/— gRPC service implementations
Паттерны
- Transactional Outbox — события сохраняются в БД в той же транзакции, что и бизнес-данные
- Unit of Work — все операции с БД через UoW транзакции
- Repository — абстракция доступа к данным
- Domain Services —
UserDomainServiceдля валидации и бизнес-логики
Kafka Events
Сервис публикует события в топики:
identity.user.events— события пользователей (USER_CREATED, USER_DISABLED, USER_ENABLED, USER_DELETED)identity.identifier.events— события идентификаторов (IDENTIFIER_ADDED, IDENTIFIER_VERIFIED, IDENTIFIER_REMOVED)
Зависимости
- PostgreSQL — хранение canonical identities
- Redis — кеширование
- Kafka — публикация событий
Связанные страницы
- Identity service — детальное описание сервиса
- Service Catalog — каталог всех сервисов
- Backend Overview — архитектурные паттерны backend