---
title: Aperçu
---

import { Callout } from 'fumadocs-ui/components/callout'
import { Card, Cards } from 'fumadocs-ui/components/card'
import { Image } from '@/components/ui/image'

Le moteur d'exécution de Sim donne vie à vos flux de travail en traitant les blocs dans le bon ordre, en gérant le flux de données et en traitant les erreurs avec élégance, afin que vous puissiez comprendre exactement comment les flux de travail sont exécutés dans Sim.

<Callout type="info">
  Chaque exécution de flux de travail suit un chemin déterministe basé sur vos connexions de blocs et votre logique, garantissant des résultats prévisibles et fiables.
</Callout>

## Aperçu de la documentation

<Cards>
  <Card title="Principes fondamentaux d'exécution" href="/execution/basics">
    Découvrez le flux d'exécution fondamental, les types de blocs et comment les données circulent dans votre
    flux de travail
  </Card>

  <Card title="Journalisation" href="/execution/logging">
    Surveillez les exécutions de flux de travail avec une journalisation complète et une visibilité en temps réel
  </Card>
  
  <Card title="Calcul des coûts" href="/execution/costs">
    Comprenez comment les coûts d'exécution des flux de travail sont calculés et optimisés
  </Card>
  
  <Card title="API externe" href="/execution/api">
    Accédez aux journaux d'exécution et configurez des webhooks par programmation via l'API REST
  </Card>
</Cards>

## Concepts clés

### Exécution topologique
Les blocs s'exécutent dans l'ordre des dépendances, similaire à la façon dont un tableur recalcule les cellules. Le moteur d'exécution détermine automatiquement quels blocs peuvent s'exécuter en fonction des dépendances terminées.

### Suivi des chemins
Le moteur suit activement les chemins d'exécution à travers votre flux de travail. Les blocs Routeur et Condition mettent à jour dynamiquement ces chemins, garantissant que seuls les blocs pertinents s'exécutent.

### Traitement par couches
Au lieu d'exécuter les blocs un par un, le moteur identifie des couches de blocs qui peuvent s'exécuter en parallèle, optimisant les performances pour les flux de travail complexes.

### Contexte d'exécution
Chaque flux de travail maintient un contexte riche pendant l'exécution contenant :
- Sorties et états des blocs
- Chemins d'exécution actifs
- Suivi des itérations de boucle et parallèles
- Variables d'environnement
- Décisions de routage

## Instantanés de déploiement

Tous les points d'entrée publics — API, Chat, Planification, Webhook et exécutions manuelles — exécutent l'instantané de déploiement actif du workflow. Publiez un nouveau déploiement chaque fois que vous modifiez le canevas afin que chaque déclencheur utilise la version mise à jour.

<div className='flex justify-center my-6'>
  <Image
    src='/static/execution/deployment-versions.png'
    alt='Tableau des versions de déploiement'
    width={500}
    height={280}
    className='rounded-xl border border-border shadow-sm'
  />
</div>

La fenêtre de déploiement conserve un historique complet des versions — inspectez n'importe quel instantané, comparez-le à votre brouillon, et promouvez ou revenez en arrière en un clic lorsque vous devez restaurer une version antérieure.

## Exécution programmatique

Exécutez des workflows depuis vos applications en utilisant nos SDK officiels :

```bash
# TypeScript/JavaScript
npm install simstudio-ts-sdk

# Python
pip install simstudio-sdk
```

```typescript
// TypeScript Example
import { SimStudioClient } from 'simstudio-ts-sdk';

const client = new SimStudioClient({ 
  apiKey: 'your-api-key' 
});

const result = await client.executeWorkflow('workflow-id', {
  input: { message: 'Hello' }
});
```

## Bonnes pratiques

### Conception pour la fiabilité
- Gérez les erreurs avec élégance en prévoyant des chemins de repli appropriés
- Utilisez des variables d'environnement pour les données sensibles
- Ajoutez des journalisations aux blocs de fonction pour le débogage

### Optimisation des performances
- Minimisez les appels API externes lorsque possible
- Utilisez l'exécution parallèle pour les opérations indépendantes
- Mettez en cache les résultats avec des blocs de mémoire lorsque c'est approprié

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

## Et ensuite ?

Commencez par les [Principes de base de l'exécution](/execution/basics) pour comprendre comment les workflows s'exécutent, puis explorez la [Journalisation](/execution/logging) pour surveiller vos exécutions et le [Calcul des coûts](/execution/costs) pour optimiser vos dépenses.
