integraal¶
integraal runs tenant-specific Luau scripts on AWS Lambda and Fargate. Scripts are stored in S3, downloaded on demand, cached, and executed in a sandboxed VM that exposes a versioned native API (S3 data access, allowlisted HTTP, streaming XML, and more).
--!strict
--!runtime 1
local function handle(ctx: Context, event: any)
native.log("info", "hello from " .. ctx.tenant)
return { trigger = ctx.trigger, echo = event }
end
return { handle = handle }
What you get¶
- One script, three triggers. The same script serves direct Lambda invokes, HTTP via an ALB, and SQS messages. See Triggers.
- Tenant isolation by construction. Each invocation gets a fresh VM, a data scope confined to the tenant's own S3 prefix, and an HTTP allowlist the tenant cannot edit.
- Typed. The
nativeAPI ships Luau type definitions; scripts are written in--!strictand checked before upload. See Types. - Versioned wrappers. Scripts pin the native API with
--!runtime N, so new APIs ship without breaking existing tenants. - Operator-controlled limits. Time, memory and call budgets are set per tenant and clamped by operator ceilings. See Tenant config.
- Streaming. Large S3 objects and HTTP bodies are read as streams and parsed with a pull parser, so memory is bounded by one XML event, not the file.
Where to start¶
| I want to… | Read |
|---|---|
| understand how the pieces fit | Architecture |
| write my first script | Writing scripts |
| look up a native function | Native API |
| configure a tenant | Tenant config |
| work with S3 data, DynamoDB, crypto, HTTP or routing | Native API chapters |
| run it locally | Local development |