Estimé 25 segundos. Medí 39.17.
- Trabajo
- Pronóstico distribuido sobre Step Functions
- Rol
- Diseño de la arquitectura y construcción
- Periodo
- 2025
- AWS
- Step Functions
- CDK
- Series de tiempo
El cálculo de pronósticos corría en serie y tardaba 52 minutos, contra un techo de plataforma de 15. Había que repartirlo sin perder trazabilidad ni disparar el costo de observabilidad. Diseñé la máquina de estados, la desplegué con CDK y medí cada decisión antes de dejarla.
La versión serial tardaba 52 minutos contra un techo de plataforma de 15, así que la partí con un estado Map sobre Step Functions, 6 Lambdas, S3 y DynamoDB, desplegado con CDK. Puse max_concurrency=8 porque la cuota de la cuenta era 10, no porque 8 fuera el número óptimo.
Probé gradient boosting esperando que ganara. Ganó AR(1). Para las métricas elegí DynamoDB sobre CloudWatch porque a esa cardinalidad CloudWatch costaba 44 USD al mes.
Mi estimación estaba mal por 57%. Lo dejo escrito porque la diferencia entre estimar y medir es el trabajo.
Se rompe a los 510 productos
514 bytes por elemento del Map contra el tope de 256 KB de estado de Step Functions. Sobre ese número hay que paginar el Map o mover la carga a S3. ↗