iii: Backend Orchestration Simplified
iii (pronounced “three eye”) unifies your existing backend stack with a single engine and two primitives: Function and Trigger. No more gluing together separate tools for APIs, queues, cron, state, and real-time communication. iii gives you all of that out of the box.Why iii?
Single Engine
One orchestration layer for HTTP APIs, queues, cron jobs, state management, and streaming
Two Primitives
Everything deconstructs into Functions (do work) and Triggers (cause work)
Any Language
Write functions in Node.js, Python, or Rust—or call any HTTP endpoint
WebSocket Protocol
Efficient, persistent connections for instant function invocation and discovery
Three Core Concepts
Function
Function
A function is anything that can be called to do work—it receives input and optionally returns output.Functions can:
- Exist anywhere: locally, cloud, serverless, or as a 3rd party HTTP endpoint
- Mutate state and invoke other functions
- Be written in any language with an SDK (Node.js, Python, Rust)
- Be automatically discovered and registered without configuration
Trigger
Trigger
A trigger causes a Function to run—either explicitly from code or automatically from an event source.Trigger types include:
- HTTP: Route requests to functions via REST API
- Queue: Publish/subscribe with Redis-backed job queues
- Cron: Scheduled execution with distributed locking
- Stream: Real-time state sync over WebSocket
- State: React to state changes automatically
Discovery
Discovery
Automatic registration and deregistration of functions and triggers without configuration files.When workers connect:
- Functions are registered and become immediately available
- Triggers are created and begin listening for events
- All functionality is discoverable across the entire backend stack
Architecture Overview
iii uses a modular architecture where each concern is handled by a dedicated module:HTTP Module
REST API with dynamic routing
Queue Module
Pub/sub job processing
Cron Module
Distributed scheduling
Stream Module
Real-time WebSocket sync
State Module
Key-value state storage
Observability
OpenTelemetry metrics & traces
Quick Example
Here’s how you create a function and expose it via HTTP:http://localhost:3111/add.
What’s Next?
Install the Engine
Get iii running on your system in under a minute
Build Your First Function
Create a working function with HTTP trigger in 5 minutes
Explore Modules
Learn about HTTP, Queue, Cron, Stream, and State modules
Read Core Concepts
Deep dive into Functions, Triggers, and Discovery
Open Source: iii is licensed under the Elastic License 2.0. Free for most use cases.