Arquitetura comum em "Data-intensive Applications"

The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at or repair.
Douglas Adams
Boa parte dos sistemas de software LoB operam com ênfase em interpretar, “cachear”, armazenar, agregar, proteger e compartilhar dados. Não são aplicações que processam cálculos complexos e, geralmente, estão mais limitadas por recursos de I/O (disco, rede, etc) do que de processamento (CPU, GPU, etc).
0
Considerações?x

Segundo Martin Kleppmann, essas são “Data-Intensive Applications.”

O que são Data-Intensive Applications?

Segundo Kleppmann, “Data-intensive applications” são aquelas onde as questões técnicas mais importantes tem relação com:

  1. o volume dos dados,
  2. a complexidade dos dados,
  3. a velocidade com que os dados são modificados.

Componentes comuns em Data-Intensive Applications

A construção padrão para aplicativos com uso intensivo de dados são:

  • bancos de dados – para armazenar dados para que eles, ou outro aplicativo, possam localizá-los novamente mais tarde;
  • caches – para agilizar as leituras, lembrando o resultado de operações caras;
  • message brokers – para troca de mensagens entre processos e / ou processamento de fluxo;
  • batch processors – processam grandes quantidades de dados

Além disso, há muito código de aplicativo para orquestrar todo esse trabalho.

Design comum de Data-Intensive Applications

Considerando o que vimos, poderíamos representar o design de aplicativos com uso intensivo de dados da seguinte maneira:

Este diagrama (adaptado do livro de Kleppmann), nos fornece um excelente plano para uma arquitetura genérica (ou de referência) para “data-intensive applications”.

Referências bibliográficas

KLEPPMANN, Martin. Designing Data-Intensive Applications: he big ideas behind reliable, scalable, and maintainable systems. Boston, Ma: O’Reilly Media, Inc, 2017.

Compartilhe este capítulo:

Compartilhe:

Comentários

Participe da construção deste capítulo deixando seu comentário:

Inscrever-se
Notify of
guest
0 Comentários
Feedbacks interativos
Ver todos os comentários

Fundador e CEO da EximiaCo, atua como tech trusted advisor ajudando diversas empresas a gerar mais resultados através da tecnologia.

Mentoria

para arquitetos de software

Imersão, em grupo, supervisionada por Elemar Júnior, onde serão discutidos tópicos avançados de arquitetura de software, extraídos de cenários reais, com ênfase em systems design.

Consultoria e Assessoria em

Arquitetura de Software

EximiaCo oferece a alocação de um Arquiteto de Software em sua empresa para orientar seu time no uso das melhores práticas de arquitetura para projetar a evolução consistente de suas aplicações.

ElemarJúnior

Fundador e CEO da EximiaCo, atua como tech trusted advisor ajudando diversas empresas a gerar mais resultados através da tecnologia.

+55 51 99942-0609 |  contato@eximia.co

+55 51 99942-0609  contato@eximia.co

0
Quero saber a sua opinião, deixe seu comentáriox
()
x