Le service aura-functions expose trois primitives distinctes : handler HTTP (endpoint synchrone), cron (planifié), job(asynchrone via queue NATS). Toutes s'exécutent dans le même runtime WASM isolé, avec les mêmes secrets, la même observabilité, la même facturation.
Info
Le runtime est memory-safe par design. Un handler qui plante dans une fonction n'affecte pas les autres — chaque exécution est isolée, limitée en mémoire (par défaut 128 MB), et détruite à la fin.
Votre code est compilé en WASM côté build (AOT — pas de JIT à l'exécution), distribué à 300 POPs, et invoqué à la demande. Le premier hit crée une instance (cold-start 5-8ms), les hits suivants réutilisent l'instance tant que le POP n'a pas garbage-collected (quelques minutes d'idle).
lifecycle
TEXT
BUILD ────▶ compile → WASM module (hash-locked)
DEPLOY ────▶ propagation aux 300 POPs (< 60s)
WARM ────▶ POP le plus proche instancie à la demande
Les secrets sont stockés chiffrés (AES-256 envelope encryption) avec une clé KMS par projet. Ils sont injectés dans ctx.secretsau moment de l'exécution et ne sont jamais persistés côté worker.
Les secrets ne sont jamais disponibles via process.env dans le bundle WASM — ils passent par ctx.secrets.get('KEY')qui fait l'appel au KMS à la volée. Cela évite qu'un dump de mémoire du worker expose tous les secrets.