-
Notifications
You must be signed in to change notification settings - Fork 0
Roadmap
TheMinecraftGuyGuru edited this page Jun 8, 2026
·
5 revisions
What's built, what's in progress, and where MuxCore is going.
Tracked in GitHub Project: MuxCore Roadmap
Status: Deployed and operational.
- 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 —
MinCoreVersionenforcement 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
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 |
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
- Go mock package — in-memory bus, mock registry for testing
- Module metadata format (
muxcore.json) - Marketplace catalog format (
catalog.json)
- 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
Status: Infrastructure complete. Modules in development.
- 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
- downloader-qbittorrent — reference sidecar module (3 commits, 72 tests)
- admin-ui — web dashboard module: module list, cluster map, event stream, settings UI, audit log browser. Discovers
SettingsProvider,AuditLogger,Authorizermodules. 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
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)
- 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
| 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 |
"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.
- Core Concepts — understand the architecture behind the roadmap
- Getting Started — try it yourself