Distributed SystemsMicroservicesEvent-DrivenAI Pipeline

Auralis

Serialized-Audio Streaming Platform

A platform for original serialized audio: listeners follow shows season by season and resume to the second across devices, creators publish episodes or generate whole series through an asynchronous AI pipeline that writes the script, synthesises the speech, and packages HLS audio. Eight independently deployable services, one database each, domain events delivered through a transactional outbox.

GoPythonKafkaPostgreSQLRedisFFmpegNext.jsTypeScriptDocker

// why this exists

Most 'audio app' side projects are one service, one Postgres table, and an <audio> tag. Auralis goes the other way: eight services that each own their data, domain events written through a transactional outbox so a crash can't drop or double-fire them, and an asynchronous pipeline that produces a full show, script, speech, and HLS packaging, without blocking a request. It stays fully functional with no third-party AI keys by falling back to bundled local generation and TTS.

8 services, database-per-service, outbox-relayed events

// how it's built

Service Topology

  • 8 independently deployable services, database-per-service
  • Go for gateway, auth, user, content, playback, analytics; Python for recommendation and the AI pipeline
  • REST for synchronous calls, Kafka for asynchronous domain events

Event Delivery

  • Outbox row written in the same transaction as the state change
  • Relayed to Kafka (Redpanda) after commit, so events are never lost or phantom
  • Analytics consumes the stream into dashboard aggregates

Media & Playback

  • AI pipeline writes scripts, synthesises TTS, packages HLS as background jobs
  • Audio streamed straight from S3-compatible storage (MinIO / R2), never through an app server
  • Playback progress tracked per device, resume anywhere