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

Ainda vale a pena criar um novo DB

Eu tenho minhas aplicações, mas quando preciso persistir dados preciso colocar na web em algum serviço ou usar algum DB como o PostgreSQL, tem varias serviços muito bons e alguns bem generosos.

Já usei supabase, achei ele bom e interessante até, mas não gosto muito de bancos realcionais.

Já usei o DynamoDB também, o mais generoso, achei um otimo espaço, se não me engano são 25gb e leituras o suficiente pra uma aplicação pequena. Mas a api deles é muito complicada, faz um tempo que nao mexo na AWS, entao não sei se melhoraram a documentação.

O primeiro que eu usei foi o Firestore, achei ele o mais simples de todos, uso Svelte pra programar e usar o Firestore com as Writable Stores é muito bom. gostei de como é organizado em coleções e documentos. Me faz pensar como organizaria os dados como se fossem pastas no explorador de arquivos.

Vi que ele é NoSQL, organiza os dados em documentos como JSON, o que facilita mais ainda, é flexível e eu acho mais facil de criar as relacoes entre coleções.

De uns tempos pra cá me peguei pensando numa coisa, numa pergunta.

E se existir um banco de dados Nosql, facil de usar como o Dexie e que organize as informações como o Firestore? Mas que crie os documentos literalmente em arquivos JSON.

Pesquisei um pouco e até achei um Pacote NPM que faz isso, o LowDB. Mas ele nao funcionou muito bem pra o que eu preciso.

Não sou nenhum senior, nem expert, mas pensei em fazer isso. Um DB NoSQL que organiza as coisas como em JSON mantendo o formado de documentos e coleções.

Queria algumas dicas e opiniões sobre isso. O que acham dessa ideia? 🤔

Carregando publicação patrocinada...
1

Uma linguagem nova é criada justamente por esse pensamento, tem uma coisa que essa linguagem X não tem e eu gostaria que tivesse, ai se junta muita gente depois e começa a seguir aquele projeto, isso para frameworks e qual lib no geral.

Vi que você não falou de MongoDB, porque embora eu não goste é o primeiro que me vem a cabeça.

Enfim, o que eu penso sobre você criar o seu próprio DB é... vai de cabeça nisso, deve ser muito massa ( no minímo muito divertido).
Mas alguns pontos para considerar...

  1. Se o seu SGBD tiver a funcionalidade de buscar no json, é preciso fazer o armazenamento de modo que facilite e não tenha muito I/O.
  2. Se for ter busca, qual será a sintaxe, precisa implementar isso também (se for um único arquivo tipo sqlite/db2, fica mais simples, precisa nem de sintaxe pode ser métodos get(), put(), ...)
  3. Talvez começar implementando um banco de dados mais simples, tipo um Paradox da vida, só pra pegar o conceito de armazenamento etc...

Além disso o Fábio akita tem esse vídeo que pode lhe ajudar com uma visão mais geral de bancos de dados.

Além disso, talvez te ajude mais é o JsonServer, ele é utilizado pra mock, mas o funcionamento é simples igual um mongodb, porém não tem organização, mas isso é "questão" de interface.

Espero ter ajudado.

1

Ajudou sim, conheço o MongoDB, esqueci de mencionar ele, vi até que eles usam o BSON.

Quero fazer ele com typescript. já comecei a fazer, do jeito que pensei em fazer a API, ela vai ficar parecendo o Dexie.js.

Inicialmente penseim em fazer o JSON em si ser o database inteiro ou cada coleção ser um arquivo JSON.

Mas fiquei pensando nos problemas que teria com concorrência.

Imaginei que seria complicado lidar com concorrência assim, foi am que pensei. Porque não fazer o db uma pasta, cada coleção dentro do db é uma pasta com documentos dentro? Cada documento seria um JSON diferente.

O schema seriam interfaces do Typescript. Imaginei que a vantagem de usar Typescript é por ter javascript e a tipagem do Typescript que vai ajudar com intellissense.

Imagino que fica até mais fácil fazer uma query, transacoes e outras coisas assim.