Architecture Decision Records#

This directory contains Architecture Decision Records (ADRs) for the feedback analysis backend.

ADRs document significant architectural decisions, the context that led to them, the options considered, and the reasoning behind the chosen approach.

Index#

ADR

Title

Status

001

Use Pydantic for domain models

Accepted

002

Protocol-based ports instead of ABCs

Accepted

003

Fully async concurrency model

Accepted

004

Single LLM client for all providers

Accepted

005

Bearer token authentication

Accepted

006

Composed settings with env prefix isolation

Accepted

007

Separate API schemas from domain models

Accepted

009

Dedicated resource group for Terraform state storage

Accepted

010

Shared container registry across environments

Accepted

011

Drop swappable-orchestrator requirement and remove OrchestratorPort

Accepted (supersedes 008; decision 3 superseded by 017)

012

App Service managed identity as PostgreSQL Entra admin

Accepted

013

Store API keys in both the database and environment variables

Accepted

014

EmbeddingPort and self-hosted BGE-M3 ONNX embedding model

Accepted

015

Cluster feedback records with HDBSCAN

Accepted

016

Guard auto-deploy on release publish to the latest version only

Accepted

017

Decompose the Orchestrator by composition only

Accepted (supersedes decision 3 of 011)

018

No third-party text in the error envelope

Accepted

019

Per-environment App Service plan sizing, prd on P0v3

Accepted

020

mistral-medium-3-5 as the judge model

Accepted

Obsolete#

ADR

Title

Status

008

Keep OrchestratorPort despite single implementation

Superseded by 011