TFG · Mención a Matrícula de Honor
Varias personas, un mismo fichero, cero conflictos
Mi Trabajo Fin de Grado: varias personas editan el mismo código a la vez dentro de un curso de Moodle, sin conflictos y con cada cambio publicado como evento.
Cómo funciona
CRDTs y eventos, de extremo a extremo- Plugin de Moodle El editor vive dentro del curso, con los usuarios y permisos de Moodle.
- Hocuspocus + Yjs Sincroniza la edición con CRDTs sobre WebSocket.
- Kafka Cada cambio se publica como evento para su procesamiento.
- Selenium Pruebas E2E con hasta 10 usuarios editando a la vez.
Por qué lo construí
Quería un problema de sistemas distribuidos de verdad: edición concurrente donde la latencia y el orden de los eventos importan, integrada en una plataforma que los alumnos ya usan.
Qué me enseñó
- Los CRDTs resuelven la convergencia, pero no la presencia ni los permisos: eso hay que diseñarlo aparte.
- Probar con 10 navegadores reales a la vez enseña más que cualquier test unitario.
Construido con
- Kafka
- Yjs
- Hocuspocus
- WebSocket
- Moodle (PHP)
- Docker Compose
- MariaDB
- Selenium