Перейти к основному содержимому

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.

Обратные ссылки

Автоссылки: где используется этот документ.