Descripción del proyecto
TraducidoDentro, la fusión debe ser sin conflictos, por lo que esperamos un motor basado en CRDT o transformaciones operativas, no un esquema ingenuo de 'el último en escribir gana'. Las ediciones simultáneas de diferentes clientes deben converger exactamente al mismo estado final en cada máquina, independientemente del orden de entrega de paquetes y los retrasos de red. El trabajo sin conexión es importante para nosotros: un usuario que pierde la conexión debe poder continuar editando localmente, y sus cambios deben reconciliarse automáticamente cuando se restablezca la conexión, sin un diálogo de fusión y sin perder caracteres escritos. También necesitamos un historial de versiones completo con instantáneas nombradas, un feed de edición visual y la capacidad de restaurar o comparar cualquier revisión anterior.
El transporte debe construirse sobre WebSocket con reconexión automática y manejo de retropresión, y todo el sistema debe escalar a través de múltiples documentos y múltiples editores concurrentes para que el servidor no se convierta en un cuello de botella. Te pedimos que trates esto como trabajo de producción: nos importa tener APIs limpias, pruebas alrededor de la lógica de fusión y documentación clara para que nuestro equipo pueda mantener el proyecto en el futuro.
— Cursores en vivo, selecciones e indicador de presencia para cada usuario
— Motor de fusión CRDT/OT con garantía de convergencia
— Edición sin conexión con reconciliación automática al reconectarse
— Comentarios integrados, hilos de discusión e historial de versiones completo