MyBotBoxMyBotBox
Architecture

Exécution & Flux de données

Comment une exécution de workflow passe du déclencheur aux handlers, en passant par les logs et la mesure des coûts.

Un workflow suit le même cycle de vie qu'il soit déclenché par un bouton, un webhook, une planification ou un sondage entrant.

Cycle de vie

flowchart LR
    classDef step fill:#00D4AA,stroke:#0F766E,color:#06302B
    classDef data fill:#3B82F6,stroke:#1E40AF,color:#fff
    classDef gate fill:#FF6B35,stroke:#C2410C,color:#fff

    S1["Build<br/>canvas"]:::step --> S2{"Validate<br/>reference checks"}:::gate
    S2 --> S3["Save<br/>blocks + edges"]:::data
    S3 --> S4["Deploy<br/>immutable version"]:::step
    S4 --> S5["Bind trigger<br/>webhook · schedule · poll"]:::step
    S5 --> S6["Execute<br/>resolve inputs → handlers"]:::step
    S6 --> S7["Logs + cost<br/>per-block metering"]:::data

Ce qui se passe pendant une exécution

sequenceDiagram
    participant T as Trigger
    participant A as API
    participant S as Serializer
    participant X as Executor
    participant H as Handler
    participant L as LLM / Integration
    participant D as Database

    T->>A: Fire (webhook / schedule / manual)
    A->>S: serialize(workflow)
    S->>S: Build graph + topological sort
    S-->>A: Execution plan
    A->>X: execute(plan)
    loop For each block
        X->>H: handle(block, inputs)
        alt AI / Integration block
            H->>L: Provider call
            L-->>H: Result
        else Data block
            H->>D: Query / insert
            D-->>H: Rows
        end
        H-->>X: Block output (stored in context)
    end
    X->>D: Write execution log + cost
    A-->>T: Result (streamed when applicable)

Propriétés clés

  • Exécution topologique — les blocs s'exécutent dans l'ordre des dépendances ; les blocs parallel et loop génèrent des sous-contextes isolés qui partagent un identifiant de trace.
  • Dispatch typé — chaque bloc est résolu vers l'un des 30 handlers derrière une interface unique, ce qui permet au moteur d'accueillir de nouveaux types de blocs sans modification du cœur.
  • Streaming — les blocs IA diffusent les tokens via les Server-Sent Events ; l'éditeur affiche la sortie en direct au fil de l'exécution.
  • Mesure des coûts — chaque bloc enregistre les tokens d'entrée/sortie et le coût dans le journal d'exécution, que la page Utilisation consulte.

Synchrone vs asynchrone

Les exécutions initiées par l'utilisateur s'effectuent de manière synchrone dans la requête. Les workflows déclenchés et de longue durée sont distribués vers Cloud Tasks et s'exécutent dans une fonction en arrière-plan, sans être limités par le délai d'expiration de la requête.

Les exécutions synchrones sont soumises au délai d'expiration de la requête de la plateforme. Pour les workflows susceptibles de durer plus longtemps, privilégiez un déclencheur webhook ou planifié, qui s'exécutent de manière asynchrone.