# Architecture Decision Records (ADRs)

This directory contains Architecture Decision Records (ADRs) for the Fetch ML project.

## What are ADRs?

Architecture Decision Records are short text files that document a single architectural decision. They capture the context, options considered, decision made, and consequences of that decision.

## ADR Template

Each ADR follows this structure:

```markdown
# ADR-XXX: [Title]

## Status
[Proposed | Accepted | Deprecated | Superseded]

## Context
[What is the issue that we're facing that needs a decision?]

## Decision
[What is the change that we're proposing and/or doing?]

## Consequences
[What becomes easier or more difficult to do because of this change?]

## Options Considered
[What other approaches did we consider and why did we reject them?]
```

## ADR Index

| ADR | Title | Status |
|-----|-------|--------|
| ADR-001 | Use Go for API Server | Accepted |
| ADR-002 | Use SQLite for Local Development | Accepted |
| ADR-003 | Use Redis for Job Queue | Accepted |
| ADR-004 | Use C++ for Selective Native Optimization | Proposed |
| ADR-005 | Use Batch-First APIs for CGo Amortization | Proposed |
| ADR-006 | Use Runtime SIMD Detection | Proposed |
| ADR-007 | Simplified Streaming I/O Without io_uring | Proposed |

## How to Add a New ADR

1. Create a new file named `ADR-XXX-title.md` where XXX is the next sequential number
2. Use the template above
3. Update this README with the new ADR in the index
4. Submit a pull request for review

## ADR Lifecycle

- **Proposed**: Initial draft, under discussion
- **Accepted**: Decision made and implemented
- **Deprecated**: Decision no longer recommended but still in use
- **Superseded**: Replaced by a newer ADR
