Skip to content

Roadmap

TheMinecraftGuyGuru edited this page Jun 8, 2026 · 5 revisions

Roadmap

What's built, what's in progress, and where MuxCore is going.

Tracked in GitHub Project: MuxCore Roadmap


MVP (Current)

Status: Deployed and operational.

Core Platform

  • Module system — lifecycle, registry, gRPC registration
  • Event bus — in-memory pub/sub with backpressure, per-subscriber channels, WAL
  • HTTP API server with health endpoint, HSTS, trace middleware
  • gRPC mesh — inter-module communication with TLS, keepalive enforcement
  • Storage orchestrator — capability-based provider routing with cache layer
  • Auto-join cluster membership with heartbeat module list propagation
  • Cluster leader election — term-based, deterministic rank, automatic re-election
  • Spool system — tag fetching with SSRF protection, checksum verification
  • Sidecar module manager — spawn, verify checksums, graceful shutdown
  • Admin/debug endpoints — /admin/* for runtime introspection
  • Core self-health probes — pluggable probes with cached aggregation
  • Startup invariant checks — writable dirs, cosign.pub, Go version
  • Core version compatibility — MinCoreVersion enforcement at module registration
  • Config hot-reload — SIGHUP applies safe changes live
  • Graceful shutdown — drain HTTP → gRPC → modules → conn pool
  • gRPC connection pool — heartbeat and mesh call reuse, 5-min idle eviction

Built-in Implementations (shipped in core)

These services have working implementations in internal/:

Service Implementation File
AuditLogger JSONL file logger with SHA-256 hash chain + optional HMAC internal/audit/audit.go
EventBus In-memory pub/sub with backpressure, WAL, SubscribeFrom internal/events/
Registry Full registry with StartupOrder/DependencyGraph internal/registry/registry.go
Storage Orchestrator Capability-negotiating multi-provider routing internal/storage/orchestrator.go
gRPC Mesh Server + client + discovery + heartbeat + auth interceptor + conn pool internal/grpcmesh/
Config JSON + env var overlay with TLS validation + SIGHUP hot-reload internal/config/
Core Health Pluggable probe registry with 5s cache internal/health/core.go
Startup Checks Invariant validation before subsystem init internal/startup/checks.go
Version Compat SemVer check at module registration internal/version/version.go

Infrastructure Contracts (interfaces defined, need module implementations)

These contracts are defined in pkg/contracts/ and are ready for modules to implement:

  • CallPolicyProvider — needs call policy module; core denies all inter-module mesh/storage calls until one is registered
  • PublishPolicyProvider — needs publish policy module; core denies all event publication until one is registered
  • SpoolResolver — needs spool module for custom spool formats; core falls back to built-in HTTPS JSON fetcher
  • AuthProvider + Authorizer — needs auth module (auth-local, auth-oidc)
  • SecretsProvider — needs secrets module (vault, env, encrypted file)
  • DatabaseProvider — needs database module (postgres, sqlite)
  • CacheProvider + CacheLayer — needs cache module (redis, valkey)
  • RateLimiterProvider — needs rate limit module
  • HealthMonitor — needs health monitor module
  • WorkerPool — P0 gap — needs worker pool module
  • Cluster — needs cluster module for multi-node coordination
  • Scheduler — P0 gap — needs scheduler module for cron tasks
  • BackupProvider — needs backup module
  • SettingsProvider — needs settings module
  • MetricsProvider — needs metrics module (prometheus)
  • TracingProvider — needs tracing module (OpenTelemetry)
  • CircuitBreaker — needs circuit breaker module
  • ConfigWatcher — needs config watcher module
  • DeadLetterProvider — needs dead letter module
  • IdentityProvider — needs identity module
  • StructuredLogger — needs logging module
  • RetryProvider — needs retry module
  • IdempotencyProvider — needs idempotency module
  • FeatureFlagProvider — needs feature flags module
  • SerializationProvider — needs serialization module
  • EncryptionProvider — needs encryption module
  • DistributedLockProvider — needs distributed lock module
  • DataRedactionProvider — needs data redaction module
  • EventStore — needs event store module
  • WorkflowEngine — needs workflow engine module
  • InputValidator — needs input validation module

SDK

  • Go mock package — in-memory bus, mock registry for testing
  • Module metadata format (muxcore.json)
  • Marketplace catalog format (catalog.json)

Domain Contracts

  • contracts-downloader
  • contracts-playback
  • contracts-media
  • contracts-indexer
  • contracts-transcoder
  • contracts-workflow
  • contracts-metadata
  • contracts-artwork
  • contracts-content
  • contracts-discovery
  • contracts-quality
  • contracts-mediainfo
  • contracts-resolver
  • contracts-notification
  • contracts-importlist
  • contracts-tag
  • contracts-filewatcher

Phase 2: Distributed

Status: Infrastructure complete. Modules in development.

Contract Extensions (implemented in core)

  • Registry.StartupOrder/DependencyGraph — dependency-respecting module ordering
  • WorkerTask.IdempotencyKey — exactly-once task processing
  • WorkerPool.Reassign — task migration on node failure
  • EventBus.SubscribeModule/UnsubscribeAll — per-module lifecycle management
  • EventBus.SubscribeFrom — catch-up replay from WAL sequence number
  • ModuleInfo.MinCoreVersion — semver compatibility declaration

Modules (Shipped)

  • downloader-qbittorrent — reference sidecar module (3 commits, 72 tests)

Modules (In Development)

  • admin-ui — web dashboard module: module list, cluster map, event stream, settings UI, audit log browser. Discovers SettingsProvider, AuditLogger, Authorizer modules. CSRF protection built into the module, not core.
  • muxcorectl — CLI tool that talks to core's gRPC services directly (no HTTP/UI required)
  • Native torrent engine (built-in, no qBittorrent dependency)
  • SABnzbd downloader
  • Debrid downloader (Real-Debrid, AllDebrid)
  • TV Manager (Sonarr replacement)
  • Music Manager (Lidarr replacement)
  • Subtitle/Lyrics provider (Bazarr replacement)
  • FFmpeg transcoder with GPU support
  • OIDC/SSO auth provider
  • S3/MinIO storage provider

Phase 3: Platform

Goal: K8s-native, multi-tenant, language-agnostic modules.

  • Kubernetes operator
  • Helm chart
  • Multi-tenant support
  • Language-agnostic module SDK (Python, TypeScript, Rust)
  • Contract reconciliation engine (contracts-reconciler)
  • Module marketplace with runtime install
  • Module sandboxing (gVisor/Firecracker isolation)

Modules (Planned)

  • Book Manager (Readarr replacement)
  • Manga/Comic Manager
  • Audiobook Manager
  • Content tagging and classification
  • Intro/outro detection
  • Storage overlay: encryption, compression, dedup
  • Ceph/Rook storage provider

Long-Term Vision

Features Undifferentiated in the Current Market

Feature Why It Matters
Distributed transcoding pool GPU workers anywhere on the network — use that old gaming PC
Intelligent orchestration Move work to idle GPUs, auto-balance storage, predictive pre-transcoding
Unified media graph Single system across movies, TV, books, manga, music, audiobooks, podcasts
Multi-tenant Almost nonexistent in homelab media — share one instance with friends
Cross-media awareness Request an anime → discovers manga + light novel adaptations
Storage abstraction Local, S3, Ceph, Glacier — transparent to the user

Positioning

"Distributed event-driven media orchestration platform"

Not "replacement for Sonarr."

MuxCore is not just a better *arr. It's a fundamentally different architecture — a fabric where every capability is a pluggable thread and the loom never changes.


Next Steps

Clone this wiki locally