À propos du projet
iii est une plateforme de composition et d’observabilité backend qui regroupe plusieurs préoccupations d’intégration — files d’attente, cron, points d’entrée HTTP, gestion d’état, observabilité, agents et sandboxes — en une seule surface d’exécution unifiée.
Le modèle mental central se compose de trois primitives :
- **Workers** : Processus qui s’enregistrent auprès du moteur iii. Un service API TypeScript, un pipeline de données Python ou un microservice Rust peuvent tous être des workers. Les workers peuvent être ajoutés au moment de l’exécution, permettant aux agents et aux applications d’étendre le système pendant qu’il fonctionne.
- **Functions** : Unités de travail avec des identifiants stables (par ex., `content::classify`, `orders::validate`) qui reçoivent une entrée, effectuent un travail et retournent éventuellement une sortie.
- **Triggers** : Causes déclaratives de l’exécution de fonctions, y compris les appels directs, les points d’entrée HTTP, les horaires cron, les abonnements aux files d’attente, les changements d’état et les événements de flux. Le worker définit la condition de déclenchement et iii gère le routage, la sérialisation et la livraison.
Les développeurs déclarent les workers dans un fichier `worker-compose.yaml` et les démarrent avec `iii compose --up`. Les workers rejoignent un catalogue en direct où chaque autre worker est notifié et peut les appeler immédiatement. La même interface est disponible pour les agents IA : lorsqu’une tâche nécessite une capacité que le système n’a pas, un agent peut ajouter un worker, découvrir ses fonctions, les appeler et tracer les résultats.
Le projet fournit des SDK pour Node.js, Python, Rust et Go. Il inclut une console de développeur (React + Rust) pour inspecter les workers, les fonctions, les triggers, les files d’attente, les traces, les logs et l’état en temps réel. Le matériel de référence lisible par les agents (« skills ») couvre chaque primitive iii et peut être installé via une commande npx.
Le dépôt est structuré comme un monorepo : le cœur du moteur est écrit en Rust (sous licence Elastic License 2.0), tandis que les SDK, la console, la documentation et le site web sont sous licence Apache License 2.0. Les images Docker sont publiées en parallèle de l’installation CLI via un script shell.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.