Skip to content

Architecture Decision Records ​

This section documents the key architectural decisions made for the Folionaut project.

What is an ADR? ​

An Architecture Decision Record (ADR) captures an important architectural decision made along with its context and consequences. ADRs help:

  • Document the reasoning behind decisions
  • Provide context for future developers
  • Enable informed reconsideration of decisions

Summary ​

ADRTitleStatusSummary
001Database ChoiceAcceptedTurso (libSQL) for edge-friendly SQLite
002Caching StrategyAcceptedLayered Redis/Memory with Token Bucket rate limiting
003LLM AbstractionAcceptedProvider abstraction layer for flexibility
004Repository PatternAcceptedAbstract data access for testability
005ObservabilityAcceptedEvents and OpenTelemetry tracing
006PII ProtectionAcceptedGuardrails-based PII detection and sanitization
007Content ModelAcceptedFlexible JSON with app-level validation
008Shared ToolsAcceptedUnified tool implementations for MCP and chat

ADR Template ​

When adding new ADRs, use this template:

markdown
# ADR NNN: Title

## Status

Proposed | Accepted | Deprecated | Superseded

## Context

What is the issue that we're seeing that is motivating this decision?

## Decision

What is the change that we're proposing and/or doing?

## Alternatives Considered

| Option | Pros | Cons |
|--------|------|------|
| Option A | ... | ... |
| Option B | ... | ... |

## Consequences

### Positive
- ...

### Negative
- ...

### Mitigations
- ...

## References
- ...

Decision Themes ​

Data Layer ​

Infrastructure ​

AI Integration ​

Released under the MIT License.