تێپەڕبوون بۆ ناوەڕۆکی سەرەکی

Data plane — stores en migratiepad

Afstemming met het platformplan: PostgreSQL = control plane; ClickHouse = telematics history & analytics; Redis = hot state; Kafka/Redpanda = event backbone; OpenSearch = search/audit; S3-compatible = exports en blobs.

Rol per store

StoreInhoudWanneer introduceren
PostgreSQLUsers, tenants, devices inventory, sessies, command queue metadata, business configMVP (huidige repo)
ClickHouseHoge volumes positie/events, aggregaties, rapportenv1+ wanneer volume/rapporten het vereisen
RedisSessions (na Keycloak), rate limits, presence, last-position cachev1+
Kafka / RedpandaIngest events, integratie, async rapportenv1+
OpenSearchZoeken users/voertuigen/audit/supportv1/v2 afhankelijk van feature-prioriteit
MinIO / S3PDF/CSV exports, firmware hosting, attachmentsv1+

TSDB-keuze

  • Primair aanbevolen: ClickHouse voor analytische telematica en grote historiek.
  • TimescaleDB kan waar nuttig zijn voor PostgreSQL-teams en kleinere time-series naast OLTP — geen verplichte tweede TSDB; kies één strategie per omgeving.

Event backbone

  • Kafka of Redpanda (Kafka-protocol compatibel).
  • Lokale dev: zie docker-compose.platform-stack.yml (Confluent Kafka + Zookeeper enkel voor development — productie: KRaft of Redpanda zonder Zookeeper volgens vendor).

Migratiepad (huidige repo)

Huidige telematica staat in PostgreSQL (device_positions, device_online, device_ingest_raw). Richting v1:

  1. Introduceer Kafka-topics voor genormaliseerde positie-events (na parser).
  2. Schrijf consumers die naar ClickHouse batch-inserten (en Redis voor “last seen”).
  3. Houd Postgres voor recente operational queries indien nodig, of verminder retentie in Postgres na backfill.
  4. Geen zware rapportqueries op Postgres-primary — verplaats naar ClickHouse.

OpenSearch

  • Niet in de standaard platform-stack compose (geheugenintensief).
  • Productie: cluster volgens OpenSearch-documentatie; zet vm.max_map_count op Linux-hosts.

Lokale stack starten

docker compose -f docker-compose.yml -f docker-compose.platform-stack.yml --profile platform up -d

Verbind apps via service-namen op het Docker-netwerk (kafka:9092, redis:6379, …) wanneer services aan hetzelfde compose-project hangen.