Skip to content
Rymflux Documentation
Esc
navigateopen⌘Jpreview
On this page

Risk register

Risk register

Status

Draft v1 — 2026-07-30

Risk table

# Risk Probability Impact Mitigation Owner
R1 Plugin adoption is too low. No one writes plugins, and the platform has no content. Medium Critical Ship with a reference plugin (local files). Publish plugin dev guide on day one. Provide SDK snippets in 2-3 languages. Target a concrete community (e.g., music hobbyists, self-hosted media enthusiasts). Core team
R2 Room framework is too rigid or too vague. Room authors either fight the API or get no guidance from it. Medium High Start with one reference room implementation (Music). Iterate on the room API based on actual experience building it. Avoid over-generalizing before the second room exists. Tech lead
R3 Plugin protocol specification has ambiguities that cause incompatible implementations. Medium High Write a spec-first protocol. Provide a validation tool that plugin authors can run against their implementation. Write a reference plugin in a second language to validate the spec before publishing. Tech lead
R4 Content ID collisions across plugins. Two plugins independently produce the same content with different IDs (or different content with the same ID). Medium Medium Library content IDs are opaque UUIDs, not plugin-scoped identifiers (see constraint C4). The separate plugin→content resolution table uses (plugin_id, foreign_id). The deduplication layer operates on this resolution table and is advisory — it can be improved without affecting the core library schema. Core team
R5 Performance: plugins slow down search. A single slow plugin blocks the entire search experience. Medium Medium Parallel search with a configurable timeout per plugin. Results arrive incrementally. A slow plugin does not block other results from being displayed. Core team
R6 Platform scope creeps beyond v1. Rooms, event systems, sync, and mobile are added before the core is stable. High High Clear scope document (see scope.md). ADR requirement for any scope addition. Tech lead sign-off on every feature that exceeds the v1 boundary. Product owner, Tech lead
R7 Desktop platform fragmentation. Linux audio (PulseAudio/PipeWire), macOS CoreAudio, and Windows WASAPI diverge in capability or behavior. Medium Medium Abstract audio backend. Start with one platform (Linux) and verify portability before expanding. Use a cross-platform audio library. Core team
R8 Plugin crashes take down the core. A plugin segfaults and the core crashes or becomes unstable. Medium Critical Plugins are separate processes, not loaded libraries. The core must handle plugin process exit (expected or unexpected) gracefully. Timeout and restart logic in the plugin runtime. Core team
R9 Room framework couples rooms to a specific UI toolkit, limiting future platform portability. Low Medium Define the room API in terms of data and behavior, not UI primitives. Room authors return data structures; the shell renders them. The rendering layer can be replaced without changing rooms. Tech lead
R10 Insufficient documentation discourages plugin and room authors. Medium High Documentation is a v1 deliverable (see scope.md). Treat docs with the same quality bar as code. Include worked examples. Platform operator

Risk response plan

Trigger Action
R1 triggers (0 non-reference plugins after 3 months of public availability) Survey potential plugin authors to identify friction points. Consider shipping an official SDK in an additional language. Reduce plugin scope to the minimum viable capabilities.
R2 triggers (room author reports fighting the API, or abandons a room) Root-cause the specific friction. Consider a room API revision (ADR required). The Music Room must be updated in lockstep with the API so it always validates the API is usable.
R3 triggers (two plugin implementations that are incompatible) Fix the spec immediately. Add a conformance test suite that plugins must pass. Publish a breaking-change notice and bump the protocol version.
R4 triggers (duplicate or missing content in user library) Investigate the collision pattern. Update the deduplication heuristic. If the issue is systemic, add a manual merge/resolve step in the library UI.
R5 triggers (user-visible search delay due to a plugin) Add per-plugin timeout monitoring. Consider caching or pre-warming plugin search indexes. Surface slow plugin warnings to the user.
R6 triggers (proposal to add a v2 feature during v1) Require an ADR. Evaluate against the scope document. If accepted, reassess v1 timeline and communicate delay to stakeholders.
R7 triggers (platform-specific audio bug) File a platform-specific issue. Implement a workaround in the audio backend abstraction layer. Document the platform-specific behavior.
R8 triggers (plugin crash disrupts playback or search) Ensure crash recovery is automatic. Plugin runtime should restart the plugin on the next request. Log the crash for plugin author debugging.
R9 triggers (room framework migration becomes necessary) Keep the old room API working during a deprecation period. Provide a migration guide. The room API version is declared in the room manifest.
R10 triggers (documentation gaps reported by users or developers) Triage the specific gaps. Update the relevant docs within one week. Add a documentation improvement to the next sprint.

Was this page helpful?