BT

A sua opinião é importante! Por favor preencha a pesquisa do InfoQ!

Akka e DDD: Combinando Programação Reativa e Domain-Driven Design

| por Jan Stenberg Seguir 9 Seguidores , traduzido por Gabriel Ozeas Seguir 0 Seguidores em 23 dez 2013. Tempo estimado de leitura: 2 minutos |

A note to our readers: As per your request we have developed a set of features that allow you to reduce the noise, while not losing sight of anything that is important. Get email and web notifications by choosing the topics you are interested in.

Em sua recente palestra sobre DDD Reativo com Scala e Akka (uma implementação de Modelo de Atores), Vaughn Vernon, autor do livro Implementing Domain-Driven Design, explora o uso de Modelo de Atores combinado com Desenvolvimento Guiado por Domínio, DDD, na redução da sobrecarga arquitetural encontrada frequentemente em arquiteturas orientadas à eventos ou hexagonais.

O termo "Reativo" empregado ultimamente não se refere à um conceito totalmente novo devido a familiaridade com o tratamento de eventos ou mensagens, mesmo assim Vaughn define algumas características básicas do modelo de atores:

  • Mensageria Assíncrona Direta: um ator transmite uma mensagem para outro ator diretamente e de forma assíncrona;
  • Concorrência Livre de Travas: os bloqueios não são manipulados pelos atores, somente pela infraestrutura;
  • Nenhum compartilhamento: os atores não devem saber sobre o estado interno de outros atores.

Uma das principais motivações de Vaughn em aplicar o DDD é modelar os aspectos centrais do negócio de maneira mais explicita. Porém em uma arquitetura típica orientada à eventos, na qual o modelo de domínio é explícito e os eventos de domínio contribuem com alguma expressividade para o modelo, quando um evento é publicado, ainda pode ser difícil localizar no código os lugares nos quais ocorrem reações decorrentes do evento, ocasionando impacto no modelo.

Em contraste, Vaughn acha o modelo de atores bastante explícito, ficando evidente no código quando um ator envia uma mensagem à outro ator.

Uma pergunta para Vaughn é: quanto podemos nos beneficiar do uso do modelo de atores com DDD? Talvez seja somente uma questão de enviar as mensagens entre Aggregates usando a mesma arquitetura que antes? A resposta de Vaughn é não, porque é possível se livrar da sobrecarga arquitetural encontrada frequentemente em arquiteturas orientada à eventos e hexagonais. Com o framework correto podemos reduzir a arquitetura à somente Controllers e Aggregates nos quais os Controllers podem ser atores que sabem como enviar mensagens a fim de interagir com Aggregates no modelo.

Vaughn não reconhece quaisquer limitações reais para o uso do modelo de atores e DDD, em vez disso ambos podem ser aplicados quando houver necessidade de alta escalabilidade, alto desempenho e baixa latência.

O Akka é construído para a Máquina Virtual Java, JVM, porém Vaughn está trabalhando em uma implementação Akka.NET, um esforço a fim de portar o Akka para C# e F#.

No início deste ano, Vaughn falou sobre a base do modelo de atores com DDD.

O Manifesto Reativo foi publicado em Setembro de 2013 e descreve as ideias principais por trás do conceito.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT