Sistemas poliglotas

Em dois posts anteriores (NOSQL e MapReduce) foi apresentado o conceito de NoSQL, comparamos os bancos relacionais com bancos não relacionais, e entendemos como um tradicional “select” funcionaria em um banco NoSQL.

No entanto, quando vamos criar uma aplicação, não precisamos escolher um único tipo de banco de dados para uso.

Cada banco é usado para resolver um determinado problema, e cada aplicação pode precisar endereçar diversos problemas.

Por exemplo: uma empresa de e-commerce precisa que a exibição e pesquisa dos produtos aconteça com velocidade. Para isso pode usar um banco de dados NoSQL. No entanto, no momento do pagamento, é necessário que haja um forte controle de consistência e integridade, então opta-se por bancos de dados relacionais.

Sistemas que trabalham com mais de um tipo de banco de dados são conhecidos por ter persistência poliglota e já são bastante comuns no mercado.

 

Mas isso é novidade?

Não. Sistemas web normalmente são sistemas poliglotas, isso significa que se utilizam de diversas linguagens de programação diferentes para atingir o objetivo final.

Por exemplo: Um sistema web pode ser desenvolvido usando SQL, HTML, Java Script e alguma linguagem como Java ou PHP.

O que muitos empresas ainda não utilizam é a persistência poliglota, que se refere exclusivamente ao uso de mais um tipo de banco de dados em uma mesma aplicação.

 

Porque se preocupar com outras linguagens de programação ou outros tipos de bancos de dados?

É importante que nós desenvolvedores tenhamos uma ideia geral de como cada linguagem de programação (e tipo de banco de dados) funciona e quais os problemas específicos que elas se propõem a resolver. Assim, durante um desenvolvimento, podemos ser críticos a ponto de escolher qual a melhor ferramenta para o nosso problema. [1]

Por exemplo: O sistema é desenvolvido em Java, mas em determinado momento ele dispara um script Python porque é mais fácil e rápido executar determinada tarefa com Python.

Conforme o volume de dados a processar aumenta de forma exponencial atualmente, é preciso buscar novas ferramentas para tratar esses dados, mas isso não significa abandonar o sistema estável que sua empresa já possui e trata requisições sem erros. Crie interfaces bem definidas para garantir que ele possa conversar com uma ferramenta diferente e obtenha novos ganhos sem perder a estabilidade que já possui.

 

Referências

[1] http://blog.locaweb.com.br/artigos/tecnologia/programacao-poliglota/

 

Por RONALDO CHICARELI

Arquiteto de software e também apaixonado por novas culturas e idiomas, pois a vida é muito curta pra ser vivida em um só lugar.

Postado em: 27 de junho de 2017

Confira outros artigos do nosso blog

Como funciona a Blockchain?

11 de junho de 2018

Alan Cesar Elias

Tutorial: Carga de dados com o SQL Loader

17 de abril de 2018

Ricardo Silveira

Aprendendo Spring Framework

09 de abril de 2018

Hivison Moura

CRUD com Spring e Thymeleaf

16 de fevereiro de 2017

Stéffano Bonaiva Batista

Deixe seu comentário