okfn-brasil / queriDO

nosso Querido Diário Oficial
https://okfn-brasil.github.io/queriDO/site
MIT License
18 stars 5 forks source link

Decisões de projeto #43

Open ppKrauss opened 7 years ago

ppKrauss commented 7 years ago

Ao longo dos últimos meses os requisitos do projeto cresceram e os seus gestores se depararam com alguns dilemas, e com um grande número de decisões de projeto, que ficaram sem decisão... Podemos reduzir drasticamente esse número, adotando convenções consensuais. Essas convenções foram discutidas na última semana, a seguir um resumo:

Diretivas gerais

  1. Backend baseado em arquitetura SOA, estruturada em REST microservices.

  2. Cada microservice descrito (e satisfazendo na sua implementação) com OpenAPI.

  3. Todos os microservices do backend sob um só domínio, orquestrados por um API-Gateway,

        

  1. Todos os dados mantidos em uma só base de dados PostgreSQL v9.6+, transparente, com tabelas principais abertas à consulta pública através de PostgREST.

  2. Todos os "dados de longo-prazo" armazenados em "backup" git, através de tabelas CSV e arquivos XML (HTML5 poliglota).

Decisões de linguagem de programação

Decisões por framework e organização do código NodeJS

Seguir exemplos de mherman.org/2016/restful-api-with-node-and-postgres para o caso de código mais enxuto, senão seguir defaults Express e melhores práticas da comunidade.

Decisões de modularização

Webservices complexos e com comunidades e usos mais amplos, como o TrazDia e o conversor de PDF, se tornariam projetos independentes, ou seja, mantidos por um outro git. Idem fork, a exemplo do que fizemos com o projeto Poppler, a biblioteca de conversão de PDFs especializada nos diários oficiais.