Skip to content

0003. Use Ktor (not Spring Boot) for the REST API

  • Status: Accepted
  • Date: 2026-06-09
  • Deciders: wrkflw team

Context and problem statement

We need an HTTP framework for the REST API. The choice must respect hexagonal layering (framework confined to adapters/apps) and the team standard.

Considered options

  • Ktor — lightweight Kotlin-native server; no annotation/reflection magic.
  • Spring Boot — feature-rich, but heavy and reflection-driven; conflicts with the team standard.

Decision

Use Ktor for all HTTP/REST APIs built in Kotlin. Spring Boot is prohibited for the API layer. This is encoded in the constitution (Technology & Architecture Constraints, v1.0.1).

Consequences

  • Positive: light footprint, explicit wiring, stays cleanly in the adapter/app layer.
  • Negative / trade-offs: fewer batteries-included conveniences than Spring; DI handled separately (Koin or manual wiring).
  • Constitution §Technology & Architecture Constraints (v1.0.1)
  • Memory: kotlin-rest-use-ktor