> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tasteful.heka.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Architecture Decision Records (ADR)

> Overview of architectural decisions made in the Tasteful framework

# 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

<CardGroup cols={2}>
  <Card title="ADR-001: Flavor Architecture" href="/adr/001-flavor-architecture">
    Modular architecture pattern for organizing application components
  </Card>

  <Card title="ADR-002: Dependency Injection" href="/adr/002-dependency-injection">
    Container-based dependency injection system design
  </Card>

  <Card title="ADR-003: FastAPI Choice" href="/adr/003-fastapi-choice">
    Selection of FastAPI as the foundation web framework
  </Card>

  <Card title="ADR-004: Controller Architecture" href="/adr/004-controller-architecture">
    Dependency graph management and controller organization
  </Card>

  <Card title="ADR-005: Authentication Architecture" href="/adr/005-authentication-architecture">
    OIDC-based authentication with FastAPI Security integration
  </Card>

  <Card title="ADR-006: Graph-Based Dependency Injection" href="/adr/006-graph-based-dependency-injection">
    Graph-based dependency resolution with circular dependency detection
  </Card>

  <Card title="ADR-007: Repository Pattern with SQLModel" href="/adr/007-repository-pattern-sqlmodel">
    Implementation of BaseRepository class with SQLModel for data access abstraction
  </Card>

  <Card title="ADR-008: Flavor Architecture Modernization" href="/adr/008-flavor-architecture-modernization">
    Migration from class attributes to constructor-based initialization for improved dependency injection
  </Card>
</CardGroup>

## 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:

```markdown theme={null}
# 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]
```
