ADR02 - Backend Technology
Title
Decision to Choose the System’s Backend Technology
Status
accepted
Context
We need a backend framework to implement a REST API for the MovieTracker application.
The backend must:
expose a clean and well-documented API for the frontend
be fast to develop with (small team / rapid iteration)
integrate well with Python-based tools (e.g. SQLAlchemy, testing)
provide good support for async operations (e.g. external API calls to TMDB)
Alternatives considered included:
Flask (minimal, but offers less type verification)
Decision
We chose Python with FastAPI. FastAPI is modern, light-weight webframework for Python.
Consequences
Easier:
Fast development due to existing Python experience
Clean and straightforward API definitions
Free API documentation via FastAPI’s built-in OpenAPI support
More difficult:
Scaling to a large userbase could become a challenge, as Python is slower than compiled languages