Skip to main content

Architecture Decision Records

This section documents the key architectural decisions made during the development of the Tasteful framework. Each ADR captures the context, decision, and consequences of important design choices.

Current ADRs

ADR-001: Flavor Architecture

Modular architecture pattern for organizing application components

ADR-002: Dependency Injection

Container-based dependency injection system design

ADR-003: FastAPI Choice

Selection of FastAPI as the foundation web framework

ADR-004: Controller Architecture

Dependency graph management and controller organization

ADR-005: Authentication Architecture

OIDC-based authentication with FastAPI Security integration

ADR-006: Graph-Based Dependency Injection

Graph-based dependency resolution with circular dependency detection

ADR-007: Repository Pattern with SQLModel

Implementation of BaseRepository class with SQLModel for data access abstraction

ADR-008: Flavor Architecture Modernization

Migration from class attributes to constructor-based initialization for improved dependency injection

What are ADRs?

Architecture Decision Records (ADRs) are short text documents that capture important architectural decisions made during a project, along with their context and consequences.

ADR Template

When creating new ADRs, use this template:
# ADR-XXX: [Title]

## Context
[Describe the forces at play, including technological, political, social, and project local]

## Decision
[State the decision and rationale]

## Consequences
[Describe the resulting context, including positive and negative consequences]

## Alternatives Considered
[List other options that were considered]