Skip to main content

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_persistence forma parte de make generate.
  • El ADR-001 aterriza antes de la extracción.

Consecuencias​

  • Los servicios externos al kernel (por ejemplo cards) dependen solamente de octopus-sdk y octopus-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.