---
title: Descripción general
---

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

El motor de ejecución de Sim da vida a tus flujos de trabajo procesando bloques en el orden correcto, gestionando el flujo de datos y manejando errores con elegancia, para que puedas entender exactamente cómo se ejecutan los flujos de trabajo en Sim.

<Callout type="info">
  Cada ejecución de flujo de trabajo sigue una ruta determinista basada en tus conexiones de bloques y lógica, asegurando resultados predecibles y confiables.
</Callout>

## Resumen de la documentación

<Cards>
  <Card title="Fundamentos de ejecución" href="/execution/basics">
    Aprende sobre el flujo de ejecución fundamental, tipos de bloques y cómo fluyen los datos a través de tu
    flujo de trabajo
  </Card>

  <Card title="Registro" href="/execution/logging">
    Monitorea las ejecuciones de flujos de trabajo con registro completo y visibilidad en tiempo real
  </Card>
  
  <Card title="Cálculo de costos" href="/execution/costs">
    Comprende cómo se calculan y optimizan los costos de ejecución de flujos de trabajo
  </Card>
  
  <Card title="API externa" href="/execution/api">
    Accede a registros de ejecución y configura webhooks programáticamente a través de API REST
  </Card>
</Cards>

## Conceptos clave

### Ejecución topológica
Los bloques se ejecutan en orden de dependencia, similar a cómo una hoja de cálculo recalcula celdas. El motor de ejecución determina automáticamente qué bloques pueden ejecutarse basándose en las dependencias completadas.

### Seguimiento de rutas
El motor rastrea activamente las rutas de ejecución a través de tu flujo de trabajo. Los bloques de enrutador y condición actualizan dinámicamente estas rutas, asegurando que solo se ejecuten los bloques relevantes.

### Procesamiento basado en capas
En lugar de ejecutar bloques uno por uno, el motor identifica capas de bloques que pueden ejecutarse en paralelo, optimizando el rendimiento para flujos de trabajo complejos.

### Contexto de ejecución
Cada flujo de trabajo mantiene un contexto enriquecido durante la ejecución que contiene:
- Salidas y estados de bloques
- Rutas de ejecución activas
- Seguimiento de iteraciones de bucle y paralelas
- Variables de entorno
- Decisiones de enrutamiento

## Instantáneas de despliegue

Todos los puntos de entrada públicos—API, Chat, Programación, Webhook y ejecuciones manuales—ejecutan la instantánea de despliegue activa del flujo de trabajo. Publica un nuevo despliegue cada vez que cambies el lienzo para que cada disparador utilice la versión actualizada.

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

El modal de Despliegue mantiene un historial completo de versiones—inspecciona cualquier instantánea, compárala con tu borrador, y promueve o revierte con un clic cuando necesites restaurar una versión anterior.

## Ejecución programática

Ejecuta flujos de trabajo desde tus aplicaciones usando nuestros SDK oficiales:

```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' }
});
```

## Mejores prácticas

### Diseña para la fiabilidad
- Maneja los errores con elegancia mediante rutas de respaldo apropiadas
- Usa variables de entorno para datos sensibles
- Añade registros a los bloques de Función para depuración

### Optimiza el rendimiento
- Minimiza las llamadas a API externas cuando sea posible
- Usa ejecución paralela para operaciones independientes
- Almacena resultados en caché con bloques de Memoria cuando sea apropiado

### Monitorea las ejecuciones
- Revisa los registros regularmente para entender patrones de rendimiento
- Haz seguimiento de los costos por uso de modelos de IA
- Usa instantáneas de flujo de trabajo para depurar problemas

## ¿Qué sigue?

Comienza con [Fundamentos de ejecución](/execution/basics) para entender cómo funcionan los flujos de trabajo, luego explora [Registro](/execution/logging) para monitorear tus ejecuciones y [Cálculo de costos](/execution/costs) para optimizar tu gasto.
