Este es un proyecto de prueba desarrollado con AWS CDK (Cloud Development Kit) en Node.js para practicar la orquestación de Step Functions. El objetivo principal es simular un flujo de compra de productos e implementar diferentes estrategias de manejo de errores y reintentos.
El proyecto implementa un flujo de 3 pasos principales:
- Validar Inventario - Verifica disponibilidad del producto
- Procesar Pago - Simula el procesamiento del pago
- Enviar Confirmación - Genera y envía confirmación de compra
- Step Function: Orquesta todo el flujo de compra
- 4 Funciones Lambda:
ValidarInventario
: Valida inventario disponibleProcesarPago
: Procesa el pago del productoEnviarConfirmacion
: Genera confirmación de compraManejoErrores
: Maneja errores y envía notificaciones
- SNS Topic: Para notificaciones de errores
- CloudWatch Logs: Para logging detallado
- X-Ray: Para tracing de la ejecución
- Comportamiento: Se reintenta automáticamente
- Configuración: 3 reintentos máximo con backoff exponencial
- Acción: Si se agotan los reintentos, el flujo falla
- Comportamiento: NO se reintenta
- Configuración: Va directo al manejo de errores
- Acción: Notifica via SNS y termina el flujo exitosamente
- Node.js (versión 18 o superior)
- AWS CLI configurado con credenciales válidas
- AWS CDK instalado globalmente
npm install -g aws-cdk
- Clonar el repositorio:
git clone <repository-url>
cd step_project
- Instalar dependencias:
npm install
- Bootstrap CDK (solo la primera vez):
npx cdk bootstrap
- Desplegar la infraestructura:
npx cdk deploy
{
"productoId": "PROD-123",
"cantidad": 2
}
{
"productoId": "PROD-123",
"cantidad": 2,
"forceErrorA": true
}
{
"productoId": "PROD-123",
"cantidad": 2,
"forceErrorB": true
}
- Grupo de logs:
/aws/stepfunctions/CompraProducto
- Ver reintentos y errores detallados
- Tracing completo de la ejecución
- Visualización del flujo y tiempos
- Visualización gráfica del flujo
- Estado de cada ejecución
- Historial de reintentos
npx cdk diff
- Comparar cambios antes del deploynpx cdk synth
- Generar CloudFormation templatenpx cdk destroy
- Eliminar toda la infraestructura
Este proyecto es únicamente para fines educativos y de práctica. Las funciones Lambda contienen lógica simulada y no realizan operaciones reales de inventario o pagos.
- AWS CDK v2
- Node.js / TypeScript
- AWS Step Functions
- AWS Lambda
- Amazon SNS
- CloudWatch Logs
- AWS X-Ray