Hydra Architect

SkillDatabases & data

Use when designing or evolving Hydra platform architecture across Elixir/Phoenix, SQLite, VictoriaMetrics/VictoriaLogs analytics, native/Rust, and runtime boundaries.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Hydra Architect skill

What this skill tells your AI

The instructions your AI receives, as published by streamband/hydra-srt in .agents/skills/hydra-architect/SKILL.md and read by ahel’s review.

When to use

Use this skill for architecture/design work in Hydra:

  • new subsystems and major refactors,
  • data model and migration strategy,
  • OTP lifecycle and process boundaries,
  • reliability/operability decisions,
  • implementation planning for coding agents.

Hydra-specific defaults

  • Primary source of truth: SQLite via Ecto (ecto_sqlite3).
  • Analytics sink: external VictoriaMetrics (route stats samples and route events over HTTP :8428) and VictoriaLogs (pipeline logs over HTTP :9428) — not transactional source of truth.
  • Control plane: Elixir/Phoenix.
  • Media/runtime work may involve native components and GStreamer.
  • Prefer incremental evolution over big-bang rewrites.

Non-negotiable principles

  1. Persist domain state in SQLite; do not store authoritative entity state in GenServers.
  2. Keep side effects at boundaries; business rules stay pure when possible.
  3. Use Ecto.Multi or explicit transactions for multi-step writes.
  4. Design for crash recovery and idempotency in long-running/runtime workflows.
  5. Every architecture change includes test strategy and rollback path.

Decision policy (context over dogma)

  • Ash/Oban/Broadway are optional tools, not mandatory defaults.
  • TDD is preferred for risky logic and regressions; proportionate rigor for small safe edits.
  • Umbrella vs multi-app split is a tradeoff decision; do not force one style.

Architecture workflow

  1. Confirm scope and constraints
  • Problem, success criteria, latency/reliability targets, migration risk.
  1. Map current system touchpoints
  • Read impacted modules, schemas, migrations, supervisors, API handlers, and tests.
  • Identify SQLite tables and any VictoriaMetrics/VictoriaLogs analytics coupling.
  1. Propose 1-2 viable designs
  • For each option: data flow, transaction boundaries, failure modes, observability, and cost.
  1. Choose and document one design
  • Record rationale and explicit tradeoffs.
  • List invariants that must remain true.
  1. Produce implementation plan
  • Small, reversible steps with validation after each step.
  • Include feature flag / staged rollout when risk is non-trivial.

SQLite guidance (Hydra)

  • Treat SQLite as authoritative operational state.
  • Keep migrations backward-compatible when feasible.
  • Avoid lock-heavy long transactions in hot paths.
  • Validate constraints at DB and changeset layers.
  • For backups/restore-sensitive changes, call out integrity implications explicitly.

Victoria analytics guidance (Hydra)

  • Use VictoriaMetrics for historical route stats (hydra_srt_stats_sample) and route events (hydra_srt_route_event) via Prometheus remote-write style import and PromQL/Export APIs.
  • Use VictoriaLogs for pipeline log history via JSON-line ingest and LogSQL query APIs.
  • Analytics writes should be resilient to delay/retry; ingestion failures must not take down control-plane operations unless explicitly required.
  • VictoriaLogs retention is governed by server-side -retentionPeriod; there is no per-request delete API — plan resets around data-dir clears or retention changes.

OTP and runtime boundaries

  • GenServers are for orchestration, caches, buffering, and lifecycle control.
  • Domain truth lives in DB, not process memory.
  • Define restart semantics per child and expected recovery behavior.
  • Specify how pipeline/runtime restarts reconcile with persisted route/config state.

Required outputs for architecture tasks

For substantial architecture work, produce these artifacts (keep concise):

  1. Context: problem, constraints, non-goals.
  2. Option A/B: tradeoffs and failure modes.
  3. Chosen design: data model, boundaries, supervision impact.
  4. Plan: ordered implementation steps.
  5. Validation: tests, telemetry checks, and rollback strategy.

Review checklist

  • Clear ownership of authoritative state (SQLite vs in-memory vs Victoria analytics stores).
  • Transaction boundaries are explicit and safe.
  • Failure/retry/idempotency paths are defined.
  • Migration and rollback path are realistic.
  • Test plan covers regressions and concurrency-sensitive paths.
  • Operational signals (logs/metrics) are sufficient for debugging.

Anti-patterns to avoid

  • Treating Victoria analytics stores as system-of-record.
  • Hiding domain mutations in controllers/web layer.
  • Long blocking work in request path when async boundary is appropriate.
  • Large refactors without staged verification.
  • Architecture docs with no executable plan.

Signals

GitHub stars
143
Forks
10
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
hydra-architect
Source
github.com/streamband/hydra-srt