Renoxium Docs Pricing Sign in Sign up

16 — Risks and mitigations

The biggest risks are not in Rust. They are sandbox security (because that is the product), npm compatibility, and the temptation to build the platform before there are products.

RiskImpactLikelihoodMitigationOwner / phase
Escape from an isolate (V8 bug, side channel)Cross-tenant data leak; end of the businessLow but catastrophicLayered isolation (D6), fast V8 updates via Deno releases, process tiers, bug bounty after launchF6
SSRF into internal infrastructureAccess to the control plane or cloud metadataMediumBlock private and metadata ranges in the fetch op after DNS resolution; allowlist per tenant; egress proxy with the same rulesF1
Tenant template as DoS on Rust threadsOne tenant consumes a cell's CPUMediumFuel, iteration and output limits, render timeout charged to the quota (B13)F2
npm libraries that do not run on DenoTenants leaveMediumPublic compatibility list, test popular packages from F0 (B17), platform APIs for images/PDF/emailF0
V8→Rust marshaling erases the render advantagePerformance claim unprovenMediumB8/B9 benchmark in F2 with path B as the alternative (D7)F2
Cell node diesTenants on that node are downMediumLitestream to S3 for the base tier (RPO seconds), synchronous replica for the higher tier, artifacts in object storage; failover restores before the route moves (docs/contracts/deploy-api.md FO1–FO6). B18: bench/results/2026-10-29-B18-failover-dev-container.md (not measured on the dev container; the node-small run is O3)F6
Single writer per SQLite fileBusy tenants hit a ceilingLow–mediumTier limits, lock-wait metrics, upgrade path to PostgresF6
Global state leaking between requests in shared modeMixed user data within one tenantMediumPer-request data through ctx, dev-mode warnings, module documentation, lintF2
Module contracts change without noticeTenant apps break on upgradeMediumSemver, generated types, renox check, versioned views (D17)F4
Template overrides drift from module versionsBroken views after upgradeMediumStored original hash and diff on upgradeF4
Binary size and V8 build timesSlow CI, 50–100 MB binaryHigh but low impactPrebuilt rusty_v8; builds only when the platform changes (B20)F1
Outbox and logs grow unboundedCell disk fillsMediumPeriodic pruning, dead-letter tables, per-tenant log volume limitsF4
Scope creepThe platform is never usedHighPhased roadmap, kill criteria, dogfooding, AGENTS.md rulesOngoing
Bus factor of oneProject dies when the author is busyHighThis documentation, components from living ecosystems, small official modules, agent-friendly repoOngoing
Dependence on Supabase Edge Runtime's directionUpstream changes break our forkMediumPin versions, keep patches small and upstreamable, fall back to deno_runtime directlyF1
Abuse (spam, crypto mining, phishing sites)Reputation, IP blacklisting, costsHigh once publicCPU/egress quotas, anomaly detection on meters, manual review for free tier, fast suspension, abuse contactF7
Pricing wrongMargin or adoption failsMediumMeters from F3 give real unit costs; pricing decided with data in F7F7
Regulatory (UAE PDPL, DIFC/ADGM regimes, sector data residency, e-invoicing phases)Legal exposure, blocked sales to regulated tenantsMediumUAE-region data by default, PDPL-aligned DPA, in-country guarantee tier for health data, adapter-based e-invoicing, quarterly regulatory review (21-uae-gcc-strategy.md)F6–F7
UAE entity and banking delaysCannot invoice in AED or sign local contractsMediumStart free-zone incorporation and bank account during F1F1
Incomplete Arabic/RTLLost trust with local customersMediumEN complete first; AR only where fully tested. Tested (#336): renox check fails on a key missing in a declared locale (i18n-missing-key, every module, example, the dashboard and www green in cli/tests/lint.test.ts); every page of every official module rendered in en/ltr and ar/rtl with no English message of its keys left, snapshotted (modules/*/tests/rtl.test.ts, helper modules/i18n/tests/rtl.ts); the dashboard's templates and its TypeScript-built messages (notices, form errors, problem messages, ago() with Arabic plural forms, state labels) in Arabic (control/dashboard/tests/i18n.test.ts); Eastern Arabic digits (nu-arab), the Umm al-Qura Hijri date (ca-islamic-umalqura), AED with fils and DD/MM/YYYY on the booking and tax invoice pages (modules/booking/tests/rtl.test.ts, modules/tax_gcc/tests/rtl.test.ts). Shared terms in modules/i18n/GLOSSARY.md. Open: a native speaker's review of the machine-translated catalogsF4–F7
UAE cloud region costs 2–3x budget VPSThinner margins if pricing does not followMediumAED pricing tiers, density benchmark, colocation when volume justifiesF3–F7

Source on GitHub