# 🔗 iii-hq/iii: Effortlessly compose, extend, and observe every service in real-time for the first time ever.

- Author: @gurupanguji
- Date: 2026-05-23
- URL: https://gurupanguji.com/blog/2026/05/23/iii-hq-iii/
- Categories: link, technology
- Tags: quotes, architecture, distributed-systems, observability, agents

---


> iii's design collapses distributed software into three concepts: Worker, Trigger, Function. Something hosts work, something causes it, something does it.
> 
> **Workers** are processes that register with the iii engine and then register triggers and functions. A TypeScript API service is a worker. A Python data pipeline is a worker. A Rust microservice is a worker. Any functionality can be transformed into a worker with a few lines of code.
> 
> **Triggers** are anything that causes a function to run. A trigger can be a direct call to a function, an HTTP endpoint, a cron schedule, a queue subscription, a state change, a stream event, or anything else. Triggers are declarative: the Worker defines "this function runs when this thing happens," and iii handles routing, serialization, and delivery.
> 
> **Functions** are units of work with a stable identifier (e.g., `content::classify`, `orders::validate`). It receives input, does work, and optionally returns output. Functions exist in workers.
> 
> By mapping everything a service can do to these three primitives iii creates a development process that is both effortlessly composable, and completely observable.

*Source:* [iii-hq/iii: Effortlessly compose, extend, and observe every service in real-time for the first time ever.](https://github.com/iii-hq/iii)

I found them via an x-post: [https://x.com/mfpiccolo/status/2049139067359568032](https://x.com/mfpiccolo/status/2049139067359568032)

This is an interesting posit. Rethinking the backend for a world of agent assisted development is a worthwhile exercise and their abstraction is a very reasonable proposal. I like that it's composable and agents are first-class citizens of the devenv. I love that they approached it from the pov of observability given that's the problem that doesn't scale well.

