From other platforms
If you already run applications on another platform, most of what you know transfers. This page maps common concepts onto Hyjal vocabulary and shows how to move an existing system across incrementally, without a rewrite or a big-bang cutover.
Concept mapping
Hyjal uses a small, consistent set of nouns. Here is how ideas from other platforms line up with them.
The organizing difference is the unit of deployment. On Hyjal you deploy a Resource (source that the platform builds into a WebAssembly component), not a pre-built image and not a long-lived process. Requests are served instance-per-request: a fresh instance per request, metered and discarded.
Coming from Cloudflare Workers
If you write Workers, the request shape is the same. Hyjal’s JavaScript and
TypeScript lane is a fetch handler:
Deploy it as a Resource in the JS lane. Frameworks whose edge adapters emit
fetch handlers (Hono, SvelteKit, Astro, Remix) deploy directly; the CLI
applies the adapter. See JavaScript and TypeScript.
The differences to plan for: instances have no ambient network access, so outbound calls go to allowlisted hostnames (see environment variables and egress) or to other Resources; and per-request state does not persist, so durable state lives in a database, Tables, or a Bucket.
Migrating a VM or Heroku-style app
For a monolith or a set of services running on VMs, dynos, or long-lived containers, migrate incrementally with the strangler pattern. You front the existing system with a Hyjal Resource and move functionality across one service at a time, keeping the app serving throughout.
1. Front the system with a Resource. Deploy a Hyjal Resource (typically your front end or an API gateway Resource) and put it on your domain with custom domains.
2. Egress-allowlist the legacy host. Add your existing system’s hostname to the Resource’s egress allowlist so the new Resource can forward to it while you migrate:
Traffic now enters through Hyjal and passes to the legacy host for anything not yet migrated.
3. Migrate service by service. Re-implement one service as its own
Resource (say the Go api behind acme) and mount its path prefix on the
front end:
Requests to /api/* are served in-process by the new Resource; everything
else still forwards to the legacy host. Repeat until nothing forwards out, then
remove the egress entry.
This keeps each step small and reversible. A rollback repoints an endpoint to the previous digest instantly, so a migration step you are unsure about is cheap to undo.
Next steps
- Pick your lane: Languages overview
- Wire a front end and API together: Full-stack apps
- Understand the serving model in depth: Architecture