Como vocês costumam lidar com o gerenciamento de estado e sincronização em tempo real em aplicações baseadas em Kanban ou listas complexas?
Atualmente tenho utilizado SSE. Tudo o que ocorre no servidor que muda interface um evento é disparado. O frontend recebe esse evento e faz um request tradicional via API. Ou seja, o evento é para informar que algo mudou agora e o que foi que mudou. O frontend já conhece a rota, então só chama. Uma alternativa é websocket. Mas achei melhor não pois estaria criando 2 canais de transferencia de dados, além do que, não tinha dados em tempo real para enviar ao servidor.
Uma decisão que vc tem que tomar: ao criar um card, por exemplo, com o retorno do POST vc adiciona no kanban? ou vc faz um resync ao receber sucesso? ou vc vai esperar o SSE chegar para atualizar a interface?
Pegadinha:
- se vc escalar horizontalmente cuidado em como armazena a conexão do frontend, pois uma reconexão não garante que vc vai voltar no mesmo servidor. Além disso se um servidor dispara um evento ele só alcança os clients conectados com ele. Então um REDIS aqui cai muito bem.
- cuidado com os servidores: algumas configurações precisam ser feitas para que uma conexão funcione bem. mas é coisa simples (buffer, cache, timeout). se for implementar só lembre de checar isso.