ADR-003: Hono framework for mvs-pay-extensions

Status

Accepted (2026-05-28)

Context

mvs-pay-extensions is a service-to-service payment orchestrator. It needs typed routes, fast cold start, simple middleware, and easy validation.

Decision

Hono 4.12.23.

Consequences

  • Lightweight; cold start friendly on Vercel functions and standalone Node servers.
  • zod-validator for request schema validation.
  • ContentfulStatusCode literal-union typing pattern for c.json(body, status) compatibility.

Alternatives considered

  • tRPC: great for in-process Next.js → backend RPC. Rejected because mvs-pay-extensions is consumed by multiple repos (mvs-pay UI, healthos, mvs-c2) over HTTP — tRPC’s tightly coupled types don’t map well across repo boundaries. The typed @mvs/mvs-pay-sdk provides equivalent type safety over a stable HTTP contract.
  • Express/Fastify: mature but heavier; weaker TypeScript ergonomics.