Retour au registre
main·60835da·En cours

ForgeFlow

Orchestrateur async résilient pour services externes.

Un cœur d'orchestration en Rust pur pour l'automatisation haut débit : tâches Tokio, Reqwest sur rustls, rate limits Governor, policies Backoff, état DashMap et métriques Prometheus.

Dépôt privé
TypeInfrastructure d'automatisationRôleArchitecture backend RustPériode2026runtimeTokiometricsPromretryBackoff
Stack

Runtime

  • RustTyped orchestration core and shared domain models.
  • TokioAsync task runtime, cancellation and backpressure.
  • ReqwestHTTP client layer over rustls for external services.

Resilience

  • GovernorRate-limit policies attached to pipeline edges.
  • BackoffExplicit retry windows for transient failures.
  • DashMapConcurrent state for job coordination.

Observability

  • PrometheusThroughput, latency and failure class metrics.
  • TracingStructured spans for pipeline debugging.
  • WebSocketsLive console target for pipeline events.
01

Pourquoi ce projet

Les services externes cassent de façon banale : timeouts, rate limits, bans temporaires et réponses partielles.

ForgeFlow explore comment rendre ces workflows explicites, observables et récupérables au lieu de les cacher dans des scripts.

02

Comment ça marche

Les jobs passent par des étapes async bornées avec rate-limiters et retries attachés aux transitions.

L'état reste dans des maps concurrentes et la visibilité opérationnelle passe par tracing structuré et Prometheus.

03

Choix techniques

  1. 01

    Design Tokio-first

    Le modèle d'orchestration colle naturellement aux tâches, à l'annulation et au backpressure.

  2. 02

    Des policies pour les retries

    Les retries et rate limits sont des concerns explicites, pas des sleep dispersés dans le code.

  3. 03

    Les métriques comme feature

    Le débit, les classes d'erreurs et la latence doivent être visibles avant de faire confiance à l'automatisation.

04

Ce que j'ai appris

  • La résilience consiste surtout à rendre les modes de panne explicites.
  • Un bon orchestrateur a besoin de contrôles solides avant les chiffres de débit impressionnants.