Проект Common
Документация общих библиотек и компонентов платформы.
О проекте
Common — это набор переиспользуемых библиотек, фреймворков и компонентов, используемых в микросервисной архитектуре платформы.
Основные компоненты
- MentKit — фреймворк для построения микросервисов на основе DDD, CQRS и Event Sourcing
- Authorization — библиотека для управления авторизацией и контроля доступа
- Timeline — компонент для работы с временными линиями событий
- Sporteco — библиотека для работы со спортивными данными
Технологический стек
- Backend: .NET 8.0 (C#)
- Database: PostgreSQL, MongoDB
- Messaging: Apache Kafka
- Coordination: Apache ZooKeeper
- Cache: Redis
- Architecture: DDD, CQRS, Event Sourcing
MentKit - Основной фреймворк
MentKit — это набор библиотек для построения микросервисных приложений на основе принципов Domain-Driven Design (DDD), Event Sourcing и CQRS.
Основные возможности
- Domain-Driven Design — агрегаты, сущности, value objects
- CQRS — разделение команд и запросов
- Event Sourcing — сохранение состояния через события
- Event-Driven Architecture — асинхронная интеграция
- Read Models — оптимизированные проекции для чтения
- Распределенные блокировки — через ZooKeeper
Архитектура микросервиса
Service/
├── Service.Domain/ # Доменная модель (агрегаты, value objects)
├── Service.Application/ # Use cases, команды, запросы
├── Service.Infrastructure/ # Реализация репозиториев, DbContext
├── Service.Api/ # REST API (контроллеры)
└── Service.Migrations/ # Миграции БД
Быстрый старт
Установка MentKit
dotnet add package MentKit.Domain
dotnet add package MentKit.Persistence.EntityFramework
dotnet add package MentKit.Events.Publisher
Структура проекта
- Создать доменную модель:
public class Order : AggregateRoot<Guid, OrderId>
{
// Бизнес-логика
}
- Создать команду:
public class CreateOrderCommand : ICommand<CreateOrderResult>
{
// Параметры команды
}
- Создать обработчик:
public class CreateOrderCommandHandler
: ICommandHandler<CreateOrderCommand, CreateOrderResult>
{
// Логика обработки
}
Разделы документации
- Backend — организация и архитектурные принципы backend-сервисов
- AI — предложения по использованию AI в документации
- Support — процессы поддержки и post-mortem анализ