Files
docs/wiki/entities/postgres-timescaledb.md
T
julian 22b1b069df Bootstrap LLM-maintained wiki with TRM architecture knowledge
Initialize CLAUDE.md schema, index, and log; ingest three architecture
sources (system overview, Teltonika ingestion design, official Teltonika
data-sending protocols) into 7 entity pages, 8 concept pages, and 3
source pages with wikilink cross-references.
2026-04-30 13:20:17 +02:00

41 lines
1.4 KiB
Markdown

---
title: PostgreSQL + TimescaleDB
type: entity
created: 2026-04-30
updated: 2026-04-30
sources: [gps-tracking-architecture]
tags: [infrastructure, business-plane, database]
---
# PostgreSQL + TimescaleDB
The durable storage layer. PostgreSQL with the TimescaleDB extension. Holds the positions hypertable and all business schema owned by [[directus]].
## Writers
- **[[processor]]** — sole writer for high-volume telemetry (positions hypertable) and writer for derived business entities (events, violations, alerts).
- **[[directus]]** — writes from the admin UI, custom endpoints, and Flows. Owns schema definition and migrations.
[[react-spa]] never writes (or reads) directly. [[tcp-ingestion]] does not touch the database.
## Schema authority
Schema is **defined and migrated through [[directus]]** — see that page for why. The Processor inserts rows respecting that schema; it does not create tables.
## Operational note
The database is the **only single point of failure** in the architecture. Everything else is restartable, replaceable, or naturally redundant. Operational attention concentrates here:
- Replication
- Backups
- Point-in-time recovery via TimescaleDB
## Scaling
- **Vertical** for write throughput.
- **Read replicas** for analytics workloads.
## Deployment
Internal-only container. Persistence volume. Regular backups. Accessed only by [[directus]] and [[processor]].