Integracion de plataformas
Learning Platform Bridge
Panel para migrar y sincronizar usuarios, cursos y progreso desde LearnDash a Moodle.
Context
Despues de la migracion inicial de LearnDash a Moodle con la herramienta de migracion (pipeline de 6 fases), era necesario un sistema para mantener las dos plataformas sincronizadas durante el periodo de transicion. Los alumnos seguian haciendo curso en LearnDash mientras se completaba la transicion a Moodle.
Que hace
Sistema ETL completo que actua como capa intermedia (puente) entre multiples instalaciones WordPress con LearnDash + WooCommerce y una instalacion Moodle centralizada:
- Extraccion via plugin WordPress REST propio
- Modelo canonico con deduplicacion por email (usuarios) y slug (cursos)
- Validacion manual con dry-run: preview de cambios antes de ejecutar
- Aplicacion a Moodle via Web Services API con idempotencia
- Ejecucion asincrona con Celery + Redis: tracking de jobs, logs persistentes, retry automatico
- Auditoria completa de cada operacion
Resultados en produccion
- 15.423 registros sincronizados en 95 segundos
- 695 usuarios canonicos deduplicados
- 72 cursos canonicos
- 1.982 matriculas
- 12.218 registros de progreso
- 0 conflictos detectados
- 5 usuarios creados exitosamente en Moodle produccion con idempotencia verificada
Dificultades principales
- Diferentes APIs: WordPress REST API vs Moodle Web Services
- Deduplicacion de usuarios: misma persona en multiples webs con IDs diferentes
- Progreso en formatos diferentes: JSON (LearnDash) vs registros (Moodle)
- Ejecucion asincrona massiva sin bloquear la interfaz
Soluciones
- Plugin WordPress propio con formato normalizado
- Modelo canonico con deduplicacion y logging de conflictos
- Celery + Redis para jobs ETL con tracking y retry
- Mode dry-run con preview de cambios
- Idempotencia total verificada con datos reales
Aprendizajes
- La sincronizacion bidireccional es mas compleja que la migracion unidireccional
- Un panel de validacion (dry-run) es imprescindible para datos criticos
- La idempotencia se debe verificar con datos reales, no solo disenarla