Overview
Desenvolvi uma aplicação robusta com foco em alta disponibilidade,
escalabilidade e integração entre diferentes tecnologias de banco de
dados. O principal objetivo do projeto foi criar um sistema capaz de
operar com múltiplos servidores de dados simultaneamente, garantindo
flexibilidade na escolha do banco, redundância e maior confiabilidade no
armazenamento e recuperação das informações.
Objetivo
A proposta foi criar um sistema completo capaz de se comunicar com
PostgreSQL, MongoDB e
MySQL, utilizando uma arquitetura distribuída que
permite a escolha do banco de dados em tempo de execução, além de
garantir a continuidade do serviço mesmo com a falha de um dos
servidores.
Principais Funcionalidades
-
Integração simultânea com três bancos de dados distintos: PostgreSQL,
MongoDB e MySQL;
-
Capacidade de gravação e recuperação de dados a partir de qualquer um
dos bancos, com fallback automático;
-
Escolha dinâmica do banco para operações específicas via front-end;
-
Arquitetura distribuída com três servidores independentes para
garantir alta disponibilidade;
-
Interface moderna e intuitiva desenvolvida com React e TypeScript.
Stack Tecnológica
-
Front-end: Desenvolvido em
React.js com TypeScript, priorizando tipagem forte e
segurança na manipulação dos dados;
-
Back-end: Criado com
Node.js + TypeScript, com uso de diferentes
bibliotecas e drivers para comunicação com cada banco de dados;
-
Banco de Dados: PostgreSQL para dados relacionais
estruturados, MongoDB para dados semi-estruturados e flexíveis, e
MySQL como alternativa relacional robusta;
-
Arquitetura: Distribuída, com três instâncias
independentes que podem ser executadas em diferentes servidores,
garantindo maior resiliência e alta disponibilidade. Todas as
instâncias seguem a arquitetura MSC (Model-Service-Controller),
proporcionando um controle mais eficiente dos dados e facilitando a
manutenção e escalabilidade do sistema.
Diferenciais do Projeto
-
Flexibilidade na escolha do banco mais adequado para cada tipo de
operação;
-
Facilidade para testes de desempenho e comparação entre bancos
distintos;
-
Alta resiliência contra falhas em serviços de dados individuais;
-
Código limpo, modular e bem documentado, seguindo boas práticas de
desenvolvimento.
Este projeto foi desenvolvido do zero, com atenção especial à
organização do código, modularidade, reusabilidade de componentes e foco
na escalabilidade. Foi uma excelente oportunidade para aprofundar
conhecimentos em bancos de dados distintos, arquiteturas distribuídas e
integração entre múltiplos serviços.
×
Tecnologias Utilizadas
- React.js
- TypeScript
- Node.js
- MSC
- GitHub
- GIT
- PostgreSQL
- MySQL
- MongoDB