ADR-0033: Bootstrap Kernel Для Backend Services
Статус
Принято.
Контекст
Каждый backend service требует одинаковой настройки host, configuration, logging, tracing, DI, MediatR, mapping, OpenAPI, health checks, MassTransit, migrations и workers. Если это копировать в каждом Program.cs, сервисы быстро расходятся по поведению.
Решение
Вводим Pin.Kernel.* shared packages и base startup classes: BaseWebStartup, BaseGatewayStartup, BaseBackgroundStartup, BaseMigratorStartup. Program.cs остается коротким, а сервис расширяет kernel через typed extension points и service descriptor.
Последствия
- Bootstrap поведение становится единым для всех сервисов.
- Сервисные startup классы описывают только собственные modules и capabilities.
- Middleware order, health endpoints, OpenAPI defaults и options validation управляются централизованно.
- Любое отклонение от kernel behavior требует ADR или обновления shared standard.
Обратные ссылки
Автоссылки: где используется этот документ.