Capa de interoperabilidad · Prueba técnica de arquitectura

ADR-014: contrato gRPC de inventario alineado con buf STANDARD

Aceptado el 10/11/2026 por Andrés, antes de escribir código que use el contrato.

Contexto

make verify corre buf lint con el conjunto de reglas STANDARD, el estándar de estilo de buf para Protocol Buffers. El contrato inventory.proto incumplía tres reglas, que en F0 quedaron como excepciones explícitas en contracts/proto/buf.yaml:

Regla Qué pide Cómo estaba
PACKAGE_DIRECTORY_MATCH La carpeta sigue al paquete Paquete andesretail.inventory.v1 en la carpeta inventory/v1
RPC_REQUEST_RESPONSE_UNIQUE Cada RPC con su propio mensaje de respuesta Confirm, Release y GetReservation compartían ReservationResponse
RPC_RESPONSE_STANDARD_NAME La respuesta se llama <Rpc>Response ReservationResponse no corresponde a ningún RPC

Ningún servicio usa todavía el contrato: cambiarlo hoy no cuesta nada; cambiarlo después de F4 obliga a regenerar código y a versionar.

Opciones

  1. Mantener las excepciones. Sin trabajo ahora; el contrato queda fuera del estándar y una respuesta compartida acopla tres operaciones.
  2. Ajustar el contrato al estándar. Un cambio pequeño, sin efecto en el diseño.

Decisión

Opción 2:

La semántica del diseño (docs/to-be/03-stock-vendible-y-reservas.md) no cambia: mismas operaciones, misma idempotencia por order_id, mismos estados.

Qué se sacrifica