ResilientLang docsDeveloper documentation (draft, product name is a placeholder)

How resilience works

ResilientLang has two planes that share only static files.

CONTROL PLANE (can go down)                 DELIVERY PLANE (must not go down)
dashboard, REST API, API keys,              static, immutable, versioned files
extraction, translation engines,            published to three places:
translation memory, jobs, publisher  --->     1. your own site (plugin local copy)
                                              2. primary CDN
                                              3. secondary CDN (independent provider)
                                                      |
                                              loader.js in the visitor's browser:
                                              manifest -> language file -> DOM, cached locally,
                                              falls back to the source language

Nothing in the visitor's request path calls the control plane.

What happens when something is down#

FailureWhat the visitor seesWhat stops working for you
Our control plane (dashboard, API) is downTranslated pages as normalEditing, translating and publishing new content until it returns
Your own site's copy of the bundles is unreachableThe loader tries the next origin (CDN A, then CDN B)Nothing
All bundle origins are unreachableThe cached manifest and language file from an earlier visit, if the browser has themNothing for returning visitors
Nothing at all can be loadedThe page in your original language, never a broken pageTranslations for first-time visitors
A manifest is tampered with or unsignedThe loader refuses it and keeps what it hadNothing

Every network call in the loader has a timeout (2.5 seconds per origin by default), a fallback and a test. A failure at any step leaves the page in the source language.

What the promise does not cover#

You keep your translations#

GET /v1/sites/{siteId}/export returns everything in JSON, XLIFF, PO or CSV. A lapsed licence is designed so that published bundles keep serving; the retention period for bundles after a lapse is still an open decision.