Scrydon

Exécution

Comprendre comment les workflows sont exécutés dans Scrydon

Le moteur d'exécution de Scrydon donne vie à vos workflows en traitant les blocs dans le bon ordre, en gérant le flux de données et en traitant les erreurs avec grâce.

Chaque exécution de workflow suit un chemin déterministe basé sur vos connexions de blocs et votre logique, garantissant des résultats prévisibles et fiables.

Vue d'ensemble de la documentation

Concepts clés

Exécution topologique

Les blocs s'exécutent dans l'ordre des dépendances, de manière similaire à la façon dont une feuille de calcul recalcule ses cellules. Le moteur d'exécution détermine automatiquement quels blocs peuvent s'exécuter en fonction des dépendances complétées.

Suivi des chemins

Le moteur suit activement les chemins d'exécution dans votre workflow. Les blocs Routeur et Condition mettent à jour dynamiquement ces chemins, s'assurant que seuls les blocs pertinents s'exécutent.

Traitement par couches

Plutôt que d'exécuter les blocs un par un, le moteur identifie des couches de blocs pouvant s'exécuter en parallèle, optimisant les performances pour les workflows complexes.

Contexte d'exécution

Chaque workflow maintient un contexte riche pendant l'exécution contenant :

  • Les sorties et états des blocs
  • Les chemins d'exécution actifs
  • Le suivi des itérations de boucles et parallèles
  • Les variables d'environnement
  • Les décisions de routage

Déclencheurs d'exécution

Les workflows peuvent être exécutés via plusieurs canaux :

  • Manuel : testez et déboguez directement dans l'éditeur
  • Déployer comme API : créez un point de terminaison HTTP sécurisé par des clés API
  • Déployer comme Chat : créez une interface conversationnelle sur un sous-domaine personnalisé
  • Webhooks : répondez aux événements externes de services tiers
  • Planifié : exécutez selon un calendrier récurrent à l'aide d'expressions cron

Déployer comme API

Lorsque vous déployez un workflow comme API, Scrydon :

  • Crée un point de terminaison HTTP unique : https://scrydon.com/api/workflows/{workflowId}/execute
  • Génère une clé API pour l'authentification
  • Accepte les requêtes POST avec des charges utiles JSON
  • Retourne les résultats d'exécution du workflow au format JSON

Exemple d'appel API :

curl -X POST https://scrydon.com/api/workflows/your-workflow-id/execute \
  -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"input": "your data here"}'

Déployer comme Chat

Le déploiement Chat crée une interface conversationnelle pour votre workflow :

  • Hébergé sur un sous-domaine personnalisé : https://your-name.scrydon.com
  • Authentification optionnelle (publique, par mot de passe ou par e-mail)
  • Interface personnalisable avec votre identité visuelle
  • Réponses en streaming pour une interaction en temps réel
  • Idéal pour les assistants IA, les bots de support ou les outils interactifs

Chaque méthode de déploiement transmet les données au bloc de démarrage de votre workflow, lançant le flux d'exécution.

Exécution programmatique

Il existe deux façons d'appeler un workflow déployé depuis le code, selon qui effectue l'appel :

Serveur à serveur (clé API)

Les backends, les tâches cron, la CI et les services internes s'authentifient avec une clé API statique émise lors du flux de déploiement. Il n'y a pas de SDK — appelez l'API de workflow directement :

curl -X POST "https://scrydon.com/api/workflows/{workflowId}/execute" \
  -H "x-api-key: $SCRYDON_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input": "Hello"}'

Agir au nom d'un utilisateur (OAuth)

Les applications de première partie (navigateur, TanStack Start / Next.js) authentifient l'utilisateur final avec OAuth 2.0 + PKCE via le SDK Client :

npm install @scrydon/sdk
import { ScrydonClient } from '@scrydon/sdk'

const client = new ScrydonClient({
  baseUrl: 'https://scrydon.com',
  clientId: 'your-oauth-client-id',
  redirectUri: 'https://your-app.com/auth/callback',
})

// Après client.auth.signIn() / handleCallback() — voir la documentation du SDK Client
const result = await client.workflows.trigger({
  workflowId: 'wf_…',
  inputs: { message: 'Hello' },
})
// result: { executionId, status, outputs }

Pour les workflows de longue durée, utilisez client.workflows.triggerAsync(...) et interrogez client.workflows.getStatus(executionId).

Bonnes pratiques

Concevoir pour la fiabilité

  • Gérez les erreurs avec grâce avec des chemins de repli appropriés
  • Utilisez des variables d'environnement pour les données sensibles
  • Ajoutez des journaux dans les blocs Fonction pour le débogage

Optimiser les performances

  • Minimisez les appels API externes lorsque c'est possible
  • Utilisez l'exécution parallèle pour les opérations indépendantes
  • Mettez en cache les résultats avec les blocs Mémoire lorsque c'est approprié

Surveiller les exécutions

  • Examinez régulièrement les journaux pour comprendre les patterns de performance
  • Suivez les coûts d'utilisation des modèles IA
  • Utilisez les instantanés de workflow pour déboguer les problèmes

Prochaines étapes

Commencez par Bases de l'exécution pour comprendre le fonctionnement des workflows, puis explorez Journalisation et calcul des coûts pour surveiller et optimiser vos exécutions.

Sur cette page

Sur cette page