Não pense nos Dados. Pense nas Operações!

Uma dúvida comum e recorrente em minhas consultorias é “Como eu faço para manter a consistência de dados entre meus microsserviços?”. Embora essa seja uma questão justificada, entendo que ela revela um problema crítico para o desenho de arquitetura:

Não deveríamos começar um sistema planejando como os dados serão persistidos. Deveríamos pensar nas operações que precisaremos suportar.

Nesse post, tento apresentar um pouco melhor essa visão.

Para ver outros posts sobre microsserviços, acesse o guia de posts sobre este tema..

De onde vem essa obsessão pelos dados?

Honestamente, não sei dar uma razão precisa para isso. Mas, acredito fortemente que exista uma relação com o fato de, tradicionalmente, as pessoas pensarem nas estruturas dos bancos de dados relacionais por elas serem realmente difíceis de mexer mais tarde.

O problema de tentar desenhar a estrutura do banco de dados logo no início do projeto é que esse é precisamente o momento em que sabemos menos sobre os dados. (Ayende)

Por que pensar em operações é mais relevante?

No dia-a-dia, são as operações, e não os dados, que agregam valor para o negócio. Aliás, qualquer especialista de negócios vai ser muito mais assertivo descrevendo quais são as operações de negócio que o sistema deve suportar no lugar dos dados que ele deve manter.

Pense nisso: Ninguém compra um sistema pelo menu “cadastros”.

E sobre microsserviços…

Em microsserviços, faz mais sentido tentar pensar o sistema pelas operações que cada microsserviço irá suportar do que pelos dados que terá de manter.

Sistemas onde existe uma preocupação muito grande com dados, quando fracionados em serviços, acabam ficando como os “módulos” dos monolíticos, com bases separadas e dados potencialmente defasados.

Microsserviços não são módulos (pelo menos, não como concebemos tradicionalmente). Cuidado!

Pensar em operações nos ajuda a entender impactos

Outro dia, estava em um projeto onde uma das preocupações era como manter os “dados comuns” de uma tabela de produtos. Então perguntei:

– Quais são as operações de negócio que disparam a troca da unidade de medida de um produto, por exemplo?

Pessoal, surpreso, teve dificuldade para entender minha pergunta. Logo depois, teve dificuldade ainda maior para responder. Isso indica, geralmente, que o sistema, centrado em dados, está descolado da realidade do negócio. Mas… Fiz outra pergunta.

– Quais são os impactos de uma modificação da unidade de medida de um produto, feita no marketing, para a produção? E para o faturamento?

Obviamente, a troca da unidade de medida implica em uma série de ajustes na área produtiva de uma indústria! Há de se pensar em setup de máquinas, em embalagem, em estoque atual, … Ou seja, o menos importante é a alteração da unidade de medida em si, mas os impactos que isso ocasiona para as outras áreas.

Um efeito colateral interessante

Nesse mundo de devices com telas pequenas, ou dispositivos de entrada nem sempre tão ágeis, pensar em operações no lugar dos dados é um alívio para quem precisa pensar na UX.

Ninguém mais quer, e cada vez mais podemos ter, telas com centenas de campos.

Pense nos aplicativos modernos. Eles nos entregam operações, não cadastros!

Concluindo

Pensar em um sistema partindo dos dados que ele armazena e manipula é um erro básico insistentemente repetido em quase todas as organizações onde fui chamado para consultoria. Tenho crença de que seja uma herança dos bancos de dados relacionais, mas não acho que a culpa seja só deles.

Quando for criar um novo sistema, ou pensar em adotar microsserviços, comece pelas operações! Tudo fica mais fácil. Garanto que até mesmo a ideia de ter bases separadas para cada microsserviço vai lhe parecer menos assustadora.

Agradecimentos para Ricardo Alves. Nosso bate-papo motivou esse post.

Compartilhe este insight:

Elemar Júnior

Sou fundador e CEO da EximiaCo e atuo como tech trusted advisor ajudando diversas empresas a gerar mais resultados através da tecnologia.

Elemar Júnior

Sou fundador e CEO da EximiaCo e atuo como tech trusted advisor ajudando diversas empresas a gerar mais resultados através da tecnologia.

Mais insights para o seu negócio

Veja mais alguns estudos e reflexões que podem gerar alguns insights para o seu negócio:

  Este post foi originalmente publicado em meu linkedin. Aqui, revisado e ampliado. Conclui a leitura de um livro fascinante...
Aqui, um registro da apresentação que realizei na abertura do IoT Weekend. O que você acha do que foi dito?
Em minha experiência, a inovação acontece a partir de um dos seguintes gatilhos: A área de negócios identifica uma demanda...
I have no idea of how many times I had to write a function do discover the minimum and the...
Ano passado, Mario Fusco escreveu uma série de posts questionando a forma como programadores Java estão implementando os padrões de projeto definidos...
O ano era 2001 ou 2002. Não lembro ao certo. Eu era um jovem programador, pai recente, tentando “encontrar meu...

Crie sua conta

Preencha os dados para iniciar o seu cadastro no plano anual do Clube de Estudos:

Crie sua conta

Preencha os dados para iniciar o seu cadastro no plano mensal do Clube de Estudos:

× Precisa de ajuda?