Architecture
Streamdat is a single product composed of a Python API, async workers, and a React SPA. Everything below is accurate at the system level; module-level detail lives in the application repository.
Request path
The browser talks to FastAPI over HTTPS. Authenticated requests carry JWT access tokens; workspace-scoped routes resolve the active tenant from middleware and dependencies. Long-running work (transcription, highlight scoring, rendering, posting) is delegated to Celery workers backed by Redis queues.
Data and media
PostgreSQL holds accounts, workspaces, videos, clips, plugin rows, workflow definitions, and analytics aggregates. Large binaries (uploads, renders) live in S3 (or MinIO in local development) with presigned URL patterns for upload and download.
Realtime
A user-scoped WebSocket channel pushes job progress and domain events; Redis Streams can backfill missed messages when the client reconnects with a cursor.
Frontend
The dashboard is a React 18 + Vite SPA using TanStack Query against the REST API, with shared UI primitives (Tailwind + component library patterns documented in the app repo design-system notes).
Pipeline and operations
See Video pipeline for the creator-facing stages and Observability for health, metrics, and logging surfaces.
Where to read more
- Authentication & workspaces
- Workflows & workers
- Realtime
- Application README and
docs/runbooks inside Streamdat_app (standup, Docker, AWS, security engineer guide). - OpenAPI: see the API page for the live Swagger URL on your deployment.