Plan — TaskFlow
Volver a README · 08 Proyectos
Objetivo: construir una plataforma donde un usuario cree automatizaciones (trigger → condiciones → acciones) que se ejecuten por webhook, cron o evento interno, con historial y reintentos.
Estado: planificación. Proyecto de cierre en 4 semanas.
1. Alcance
Registro e inicio de sesión con JWT.
Workspaces con miembros y roles.
CRUD de automatizaciones.
API keys por workspace.
Webhook receiver con validación HMAC.
Scheduler cron para automatizaciones programadas.
Cola de ejecución con reintentos y dead-letter queue.
Historial de ejecuciones con logs.
Dashboard con estado de automatizaciones.
2. Fuera de alcance
Marketplace de plantillas.
Facturación.
Editor visual drag-and-drop.
Integraciones OAuth con terceros (solo webhooks y HTTP).
Notificaciones push.
3. Arquitectura
Next.js (dashboard)
│
▼
API NestJS ──────────────► PostgreSQL
│ ▲
│ └── Webhook receiver (HMAC)
▼
Redis + BullMQ
│
▼
Worker (NestJS) ──► acciones: HTTP, email, Slack/Discord, DB
│
▼
run_logs
4. Modelo de datos
Tabla Campos principales usersid, email, password_hash, created_at workspacesid, name, owner_id, created_at workspace_membersworkspace_id, user_id, role api_keysid, workspace_id, name, key_hash, last_used_at automationsid, workspace_id, name, trigger_type, trigger_config, conditions, actions, enabled webhook_endpointsid, workspace_id, automation_id, path, secret runsid, automation_id, status, started_at, finished_at, error run_logsid, run_id, level, message, created_at
5. Componentes
Componente Responsabilidad Auth Registro, login, JWT y roles Workspaces Aislamiento de datos por workspace Automations CRUD y validación de reglas Webhook receiver Validar HMAC y encolar la ejecución Scheduler Disparar automatizaciones cron Execution engine Evaluar condiciones y ejecutar acciones Queue Reintentos, backoff y dead-letter queue Runs Historial y logs por ejecución Dashboard Crear, activar y monitorear automatizaciones
6. Hitos
Semana Entregable Criterio de cierre 1 Auth + workspaces + CRUD de automatizaciones + DB Se crea un workspace y una automatización desde la API 2 Webhook receiver + scheduler + cola BullMQ Un webhook válido encola y ejecuta una acción HTTP 3 Motor de ejecución + acciones + logs + reintentos Una ejecución fallida se reintenta y queda registrada 4 Dashboard + Docker + CI/CD + deploy + docs + demo URL pública con flujo completo y CI verde
7. Criterios de aceptación
8. Decisiones técnicas
TypeScript + NestJS: un solo lenguaje, modular y con inyección de dependencias.
PostgreSQL: reglas y ejecuciones son datos relacionales; JSONB para configuración flexible.
Redis + BullMQ: reintentos, backoff y DLQ sin reinventar la cola.
Webhooks con HMAC: evita ejecuciones falsas.
Worker separado: aísla el trabajo pesado de la API.
Next.js: dashboard rápido y desplegable en Vercel o Cloudflare Pages.
9. Riesgos
Riesgo Mitigación Scope creep en integraciones Limitar acciones a HTTP, email y Slack/Discord Webhooks duplicados Idempotency key por ejecución Fallos de terceros Reintentos con backoff y DLQ Seguridad de API keys Guardar solo hash y mostrar la key una vez Tiempo insuficiente Priorizar webhook + HTTP y dejar cron como segundo paso
10. Próximo paso
Inicializar monorepo y Git.
Crear el esquema de base de datos y las migraciones.
Implementar auth y workspaces.
Crear el CRUD de automatizaciones.
Primer commit con README y CI mínima.
Enlaces