Este proyecto es el backend de alto rendimiento encargado de gestionar la colaboración en tiempo real para la plataforma QCRAFT. Utiliza WebSockets para sincronizar las ediciones de circuitos cuánticos entre múltiples usuarios de forma instantánea.
A diferencia del backend de Django (QuantumWeb) que gestiona la persistencia, quirkSpring está especializado exclusivamente en la comunicación de baja latencia.
- Servidor WebSocket: Expone un único endpoint WebSocket que actúa como el "punto único de verdad" para todas las operaciones de edición colaborativa.
- Sincronización en Tiempo Real: Recibe las modificaciones de un cliente, las aplica a un estado del circuito en memoria y las retransmite a todos los demás clientes conectados a la misma sesión.
- Gestión de Sesiones: Administra múltiples sesiones de edición de circuitos de forma concurrente, asociando a cada una los usuarios conectados.
- Modelo de OT Simplificado: Implementa una lógica de transformación de operaciones (OT) simplificada para gestionar conflictos de inserción concurrente, asegurando que ninguna operación se pierda.
- Persistencia en Memoria: Mantiene el estado de los circuitos activos completamente en memoria para minimizar la latencia.
- Framework: Spring Boot
- Lenguaje: Java
- Comunicación: WebSockets
- Build Tool: Maven
- Java (JDK 17 o superior)
- Maven
- Clona este repositorio en tu máquina local.
- Navega a la carpeta del proyecto.
- Compila y ejecuta el servidor usando el wrapper de Maven:
./mvnw spring-boot:run
El servidor WebSocket se iniciará y estará listo para aceptar conexiones.
Este backend es el motor de colaboración en tiempo real del ecosistema QCRAFT y funciona en conjunto con:
- QuantumWeb: El backend de Django que gestiona la persistencia de datos.
- ShareQuirk: El frontend en React, específicamente el editor Quirk, que se conecta a este servidor WebSocket para sincronizar los cambios.