Executando verificação de segurança...
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.

Carregando publicação patrocinada...
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.