ADR-002 Extraer octopus-sdk
- Estado: proposed
Contexto
sdk/* y parte de platform/* viven dentro de octopus-api, pero son infraestructura reutilizable por otros servicios del ecosistema. Mientras estén en el mismo repositorio, cualquier servicio nuevo tendría que depender de octopus-api o duplicar código.
Decisión
sdk/* y platform/operations, platform/outbox y platform/events se mueven a su propio repositorio, octopus-sdk, publicado en el GitLab Package Registry bajo el grupo io.octopus. platform/profiles, platform/resources y platform/tenancy se quedan en el kernel.
El desarrollo local usa Gradle composite builds (includeBuild); mavenLocal() está prohibido.
Prerrequisitos:
- Todo el código generado lleva el marcador
AUTO-GENERATED. generate_persistenceforma parte demake generate.- El ADR-001 aterriza antes de la extracción.
Consecuencias
- Los servicios externos al kernel (por ejemplo cards) dependen solamente de
octopus-sdkyoctopus-protos. - Cambios en el SDK requieren versionado y publicación explícitos.
- La dirección de dependencias (
apps → modules → platform → sdk) pasa a cruzar repositorios.