Executando verificação de segurança...
2

Fala, edsonlcandido! Vi teu post sobre Parquet e lembrei de um troço que pode te interessar: cr-sqlite (github.com/vlcn-io/cr-sqlite).

É uma extensão pro SQLite que bota CRDTs direto nas tabelas. Cada máquina mantém seu banco local, escreve normal, e sincroniza com as outras sem conflito. A resolução é por coluna, automática.

Na prática cada nó roda SQLite com a extensão, faz INSERT/UPDATE como sempre, e de tempos em tempos joga um changeset (SELECT * FROM crsql_changes WHERE db_version > ?) na pasta SMB. Os outros nós leem e aplicam. Não importa a ordem, todo mundo converge pro mesmo estado.

O que tu ganha em cima do Parquet: não precisa mais gerenciar consolidação manual, nomes de arquivo com GUID, nem aquela lógica de compactação quando passa de 100 arquivos. E como continua sendo SQLite, tu tem JOINs, índices, queries relacionais, basicamente o que tu queria do DuckDB sem o overhead de carregar arquivo em memória.

A extensão é em Rust, usa load_extension do SQLite, funciona com .NET sem problema. Overhead de ~2.5x em INSERTs vs SQLite puro, mas com 9-22k registros tu nem vai notar.

Agora, o projeto tem um senão. O mantenedor (Matt Wonlaw) foi pra outra empresa e o ritmo de releases caiu bastante. Última é a v0.16.3 de janeiro. Pro teu cenário eu acho que tá ok, volume baixo, poucos writers, dados que se perder não é o fim do mundo. Mas é bom saber antes de adotar.

Carregando publicação patrocinada...
1

Vou ver mais informações sobre isso, não tenho muito conhecimento de como carregar essa extensão tanto no código, como para o SQLite studio para testar queries e tal. mas já está anotado aqui. Obrigado pela diaca.
Comunidade aqui é fera demais =).