O que é o Event Storming? \| TreinaWeb               Promoção no ar   Matricule-se agora e garanta **54% de desconto**  

  Termina em   Tempo restante da oferta: 10 Horas 

 55 Min 

 38 Seg 

   Tempo restante da oferta: 10 55 38 

  [Assinar →](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26) 

   [                ](https://www.treinaweb.com.br)  Explorar  

 [ Quanto custa? ](#assinatura) [ FAQ ](https://www.treinaweb.com.br#faq) [Matricule-se](#assinatura) [ Entrar ](https://www.treinaweb.com.br/login) 

     [ Início ](https://www.treinaweb.com.br) [ Artigos ](https://www.treinaweb.com.br/blog) O que é o Event Storming?  [ Arquitetura de Software ](https://www.treinaweb.com.br/blog/categoria/arquitetura-de-software) 

# O que é o Event Storming?

 Em situações complexas, pode ser complicado enxergar as fronteiras entre domínios, subdomínios e bounded contexts. Para auxiliar nessa missão, existe uma técnica que pode ser utilizada: trata-se do Event Storming.

 [ Marylene Guedes ](https://www.treinaweb.com.br/blog/autor/marylene-guedes) 4 anos atrás

  ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/09/EVENT-STORMING.jpg)  

Anteriormente, vimos um pouco sobre o [DDD e seus principais conceitos](https://www.treinaweb.com.br/blog/uma-breve-introducao-ao-ddd): domínios, subdomínios e bounded contexts. Porém, em situações complexas, pode ser complicado enxergar as fronteiras entre domínios, subdomínios e bounded contexts. Para auxiliar nessa missão, existe uma técnica que pode ser utilizada: trata-se do Event Storming.

### O que é?

O Event Storming é um workshop criado por Alberto Brandolini. Ele visa facilitar a visualização de subdomínios e bounded contexts, além de auxiliar no processo de estabelecimento da linguagem ubíqua.

Vale ressaltar que o resultado de um event storming não é um diagrama de componentes ou de modelagem de dados, como o UML por exemplo. Muito pelo contrário: ele resulta em uma representação visual totalmente voltada aos comportamentos esperados do software.

Isso permite uma validação rápida e interativa deste modelo não somente pelo time de tecnologia, mas até mesmo por times de produto e negócio.

### Como funciona?

A dinâmica do event storming visa reunir em uma sala todos os times envolvidos em um projeto, sejam estes times de tecnologia, de produto ou de negócio.

Através de uma dinâmica divertida e interativa, os times envolvidos passam a interagir para construírem uma representação visual dos processos e dos eventos que podem acontecer com o domínio a ser resolvido.

Este diagrama, que é construído em um quadro com canetas e post-its, acaba sendo construído em conjunto por todos durante estas interações.

Devido ao aspecto colaborativo, o event storming possibilita uma aceleração do aprendizado em grupo, onde o tempo necessário para criar um entendimento padronizado do domínio e dos aspectos de negócio é reduzido. No event storming, esse entendimento unificado dos aspectos de negócio pode ser atingido em questão de poucas horas ou dias.

Isso é certamente uma grande vantagem, já que as técnicas de modelagem mais tradicionais não conseguem um entendimento comum do domínio com tal rapidez.

O event storming também possui como missão fazer com que os times envolvidos descubram em conjunto a complexidade do projeto desde o início, ajudando a entender o processo de negócio. Consequentemente, os times em conjunto também podem pensar de maneira interativa em soluções para estes desafios antes mesmo de pensarem em tecnologia propriamente dita.

Para que o event storming atinja todos os objetivos, é importante reunir todas as pessoas do projeto neste workshop, principalmente os domain experts: são eles quem vão saber responder a maior parte das questões que surgirão durante este processo.

Para construir a representação visual obtida a partir do event storming, pode ser utilizado um mural grande ou um rolo de papel cobrindo boa parte da parede. Neste papel, as pessoas participantes podem ir colando post-its com cores diferentes, utilizando também canetas para realizar anotações e ligar estes post-its através de setas. Cada post-it possui uma cor específica e deve passar a ser colocado dentro do quadro em uma ordem específica, onde cada cor representa uma estrutura dentro do event storming.

A representação de cada cor bem como a ordem estão detalhadas abaixo:

• **Post-its laranjas correspondem aos domain events:** o primeiro passo no event storming é identificar os domain events. Um domain event é algo que acontece com os componentes de negócio e que tem significado de negócio. Por exemplo: em um sistema de pedido de comida por aplicativo, podem acontecer coisas após a confirmação de pedido, como a notificação do usuário por email de que o pedido foi confirmado. Nesse caso, pedido confirmado seria um domain event. Os domain events são importantes para entender como o software deve funcionar, além de ser mais fácil para os membros do projeto primeiro identificarem coisas que devem acontecer;

• **Post-its azuis correspondem aos commands:** como segunda etapa, podemos localizar a ação que causou cada um dos eventos de domínio. Estas ações são chamadas de commands. Os commands são escritos em post-its azuis e colocados antes do evento de domínio correspondente. Eles também podem ser interligados por setas, caso essa abordagem torne a representação mais clara. Commands geralmente representam interações do usuário com o sistema. No exemplo anterior, poderíamos ter o command “confirmar entrega de comida” que resultaria no domain event “pedido confirmado”;

• **Post-its amarelos correspondem aos actors:** commands geralmente representam uma interação de usuários com a aplicação. Estes usuários passam a ser denominados como actors dentro do DDD. No exemplo anterior, poderíamos ter um actor “gerente de restaurante” se ligando ao command “confirmar pedido”, command este gerando o domain event “pedido confirmado”;

• **Post-its em amarelo claro representam os aggregates:** commands e domain events podem ser agrupados dentro de grupos lógicos de acordo com o significado de negócio. Além disso, existirão estruturas do event storming que precisarão lidar com fluxos diferentes de maneira interligada. Estes são os aggregates. Em nosso exemplo, poderíamos agrupar todos os commands e domain events relacionados ao pedido de delivery de comida em uma grande unidade, pois seriam commands e eventos relacionados. Este grande grupo também precisaria de informações de várias entidades da aplicação, como as informações sobre os produtos, sobre o pedido e sobre os usuários. Neste caso, teríamos um aggregate;

• **Post-its em roxo representam processes:** processes são fluxos de negócio que podem acontecer em decorrência de um command ou mesmo como reação a um domain event. No exemplo anterior, poderíamos ter um processo de envio de email de notificação reagindo ao domain event “pedido confirmado”;

• **Post-its em rosa representam external systems:** um sistema externo é um provedor de serviços terceirizado, usado como solução para um problema no domínio, como um gateway de pagamento;

• **Post-its em roxo ou vermelho claro representam policies:** as policies (ou política) correspondem a validações que precisam ser realizadas dentro dos componentes do event storming. No exemplo anterior: poderíamos ter uma política atrelada ao command “confirmar pedido” indicando que o pedido só pode ser confirmado caso possua dois ou mais itens;

• **Post-its em vermelho representam os errors:** os errors correpondem a situações de erro que podem aparecer a partir de nossos commands ou policies. No exemplo, anterior, poderíamos ter o error “pedido possui somente 1 item” atrelado à policy “pedido deve possuir dois ou mais itens”;

• **Post-its em verde representam as views:** as views representam uma visão com a qual os usuários interagem para realizar uma tarefa na aplicação ou receber um feedback de alguma ação tomada.

Ainda levando-se em consideração o caso de pedido de entrega de comida, poderíamos ter o seguinte fragmento de um quadro do event storming:

![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/09/event-storming.jpg)

Desta maneira, utilizar o event storming acaba nos trazendo uma melhor visualização e consequentemente, um melhor resultado.

- [ #DDD ](https://www.treinaweb.com.br/blog/tag/ddd)
- [ #event ](https://www.treinaweb.com.br/blog/tag/event)
- [ #storming ](https://www.treinaweb.com.br/blog/tag/storming)

Autor

 ![Marylene Guedes](//secure.gravatar.com/avatar/5b0ba52b3705f298802db58782656bbc?d=mm)

## Marylene Guedes

 Responsável pelo sucesso do cliente na TreinaWeb. Graduada em Gestão de Tecnologia da Informação pela FATEC Guaratinguetá, além de estudante de UX/UI. 

 [Todos os artigos](https://www.treinaweb.com.br/blog/autor/marylene-guedes)  

## Continue estudando

 Transforme leitura em prática com os cursos e formações da TreinaWeb.

 [Ver cursos](https://www.treinaweb.com.br/cursos)   

  Continue lendo

## Artigos relacionados

- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/09/DOMAIN-DRIVEN-DESIGN-400x280.png)  [ Arquitetura de Software ](https://www.treinaweb.com.br/blog/categoria/arquitetura-de-software) 

     4 anos atrás

    ##  [ Uma breve introdução ao DDD ](https://www.treinaweb.com.br/blog/uma-breve-introducao-ao-ddd) 

     Confira neste artigo uma breve introdução ao DDD: o que é domínio, linguagem úbiqua e bounded contexts.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/03/TWELVE-FACTOR-APP-400x280.png)  [ Engenharia de Software ](https://www.treinaweb.com.br/blog/categoria/engenharia-de-software) 

     6 anos atrás

    ##  [ O que são os 12 factor app? - Parte 3 ](https://www.treinaweb.com.br/blog/o-que-sao-os-12-factor-app-parte-3) 

     Nesta terceira parte, iremos abordar mais três dos 12 princípios: port binding, concurrency e disposability.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/03/o-que-e-programacao-reativa-400x280.png)  [ Arquitetura de Software ](https://www.treinaweb.com.br/blog/categoria/arquitetura-de-software) 

     6 anos atrás

    ##  [ O que é programação reativa? ](https://www.treinaweb.com.br/blog/o-que-e-programacao-reativa) 

     Confira neste artigo o que vem a ser programação reativa, um princípio de desenvolvimento de software que vem ganhando espaço entre os desenvolvedores.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/12/06151538/principais-projetos-doctrine-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     7 anos atrás

    ##  [ Conheça os principais projetos do Doctrine ](https://www.treinaweb.com.br/blog/conheca-os-principais-projetos-do-doctrine) 

     O Doctrine é um conjunto de projetos PHP voltados principalmente para trabalhar com persistência de dados. Neste post vamos falar como esses projetos surgiram e qual a utilidade de cada um.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/07/31142052/mjml-cover-400x280.png)  [ Desenvolvimento ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento) 

     7 anos atrás

    ##  [ E-mails responsivos com a linguagem de marcação MJML ](https://www.treinaweb.com.br/blog/e-mails-responsivos-com-a-linguagem-de-marcacao-mjml) 

     O MJML é um framework e linguagem de marcação para a criação de e-mails responsivos. Veja como integrá-lo aos seus projetos.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/11/12132017/introducao-swoole-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     7 anos atrás

    ##  [ Introdução ao Swoole, framework PHP assíncrono baseado em corrotinas ](https://www.treinaweb.com.br/blog/introducao-ao-swoole-framework-php-assincrono-baseado-em-corrotinas) 

     Uma Introdução ao Swoole, framework PHP assíncrono baseado em corrotinas e comparação dele com o modelo tradicional que usa um servidor web (nginx, apache etc) com PHP-FPM.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2018/08/07161700/gerenciamento-python-400x280.png)  [ Python ](https://www.treinaweb.com.br/blog/categoria/python) 

     4 anos atrás

    ##  [ Empacotando e publicando pacotes Python no PyPi ](https://www.treinaweb.com.br/blog/empacotando-e-publicando-pacotes-python-no-pypi) 

     Neste artigo iremos aprender como funciona o processo de empacotar e distribuir nossos próprios pacotes Python no PyPi.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/02/12200152/serverless-400x280.png)  [ Computação em nuvem ](https://www.treinaweb.com.br/blog/categoria/computacao-em-nuvem) 

     8 anos atrás

    ##  [ Serverless: uma introdução ](https://www.treinaweb.com.br/blog/serverless-uma-introducao) 

     Nesse artigo uma introdução à arquitetura Serverless e um pouco sobre o AWS Lambda, um dos principais serviços do mercado.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/01/28160855/websockts-php-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     7 anos atrás

    ##  [ Aplicações em tempo real com PHP usando WebSockets ](https://www.treinaweb.com.br/blog/aplicacoes-em-tempo-real-com-php-usando-websockets) 

     Neste artigo veremos uma introdução a WebSockets com a criação de um servidor em PHP e usando o navegador do usuário como cliente.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/05/01125223/react-php-imagem-400x280.png)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     7 anos atrás

    ##  [ Trabalhando com Sockets no ReactPHP ](https://www.treinaweb.com.br/blog/trabalhando-com-sockets-no-reactphp) 

     Veremos neste artigo como usar o componente de socket do ReactPHP para criar um chat pelo terminal. Além disso, veremos as bases para a construção de servidores TCP/IP.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2017/12/13103521/chrome53-400x280.png)  [ Desenvolvimento Front-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-front-end) 

     9 anos atrás

    ##  [ Novidades do Chrome 63 para os desenvolvedores ](https://www.treinaweb.com.br/blog/novidades-do-chrome-63-para-os-desenvolvedores) 

     Veja algumas das novidades presentes no Chrome 63, última versão do navegador a ser lançada em 2017.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/06/03131718/DIAGNÓSTICO-400x280.png)  [ Infraestrutura e Sistemas Operacionais ](https://www.treinaweb.com.br/blog/categoria/infraestrutura-e-sistemas-operacionais) 

     8 anos atrás

    ##  [ Diagnosticando uma aplicação no .NET Core 3.0 ](https://www.treinaweb.com.br/blog/diagnosticando-uma-aplicacao-no-net-core-3-0) 

     Conheça as ferramentas dotnet-counters, dotnet-trace e dotnet-dump. E aprenda como elas auxiliam no diagnóstico de uma aplicação .NET Core.

     Ler artigo

## Um ano de acesso total para você viver de programação.

 Todos os cursos e formações da TreinaWeb numa única assinatura, com professores que atuam no mercado, suporte direto e certificados. Do primeiro `console.log` ao mercado de trabalho.

- **1 ano** de acesso a **todos os cursos**
- Cursos novos **toda semana**
- Suporte **direto com professores**
- Plano de carreira **personalizado**
- **Certificados digitais** inclusos
- **Aplicativos** para Android e iOS, com **acesso offline**

    **Garantia incondicional de satisfação** 

 Teste por 7 dias e, se não fizer sentido para você, devolvemos seu dinheiro.

### Acesso completo a todos os cursos e dezenas de Formações.

 12 meses 

  Economize R$ 840,00  54% OFF 

 de 12x R$ 129,00 por apenas

 12x  R$ 59,00

 sem juros no cartão de crédito ou R$ 599,00 à vista

  Oferta termina em  **10h 55min 39s**

- Acesso imediato e ilimitado durante 1 ano.
- Plano de carreira personalizado.
- Suporte direto com professores.
- E muito mais!

 [Matricule-se agora](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26)

     [                ](https://www.treinaweb.com.br)

 Escola online de programação, tecnologia e IA.

- [  ](https://www.facebook.com/TreinaWeb/)
- [  ](https://www.instagram.com/treinaweb/)
- [  ](https://www.youtube.com/user/TreinaWeb)
- [  ](https://twitter.com/treinaweb)
- [  ](https://www.linkedin.com/company/treinaweb)
- [  ](https://github.com/treinaweb)

## Inscreva-se em nossa newsletter

Receba lançamentos, promoções e novidades.

   Seu nome     Seu WhatsApp     Seu melhor e-mail   Inscrever-se 

## Cursos

- [ Base para Devs ](https://www.treinaweb.com.br/categoria/base-para-devs)
- [ Front-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-front-end)
- [ Back-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-back-end)
- [ Mobile ](https://www.treinaweb.com.br/categoria/desenvolvimento-mobile)
- [ Bancos de Dados ](https://www.treinaweb.com.br/categoria/bancos-de-dados)
- [ Cloud ](https://www.treinaweb.com.br/categoria/cloud-computing)
- [ IA ](https://www.treinaweb.com.br/categoria/ia)
- [ E mais ](https://www.treinaweb.com.br/categoria/e-mais)
- [ Ver todos os cursos ](https://www.treinaweb.com.br/cursos)

## Conteúdo

- [ Formações ](https://www.treinaweb.com.br/formacoes)
- [ Projetos práticos ](https://www.treinaweb.com.br/projetos-praticos)
- [ Direto ao ponto ](https://www.treinaweb.com.br/direto-ao-ponto)
- [ Planos ](https://www.treinaweb.com.br#assinatura)
- [ Depoimentos ](https://www.treinaweb.com.br#depoimentos)
- [ Comunidade ](https://www.treinaweb.com.br#comunidade)
- [ Corpo docente ](https://www.treinaweb.com.br#docente)

## A empresa

- [ Sobre a TreinaWeb ](https://www.treinaweb.com.br#sobre)
- [ Perguntas frequentes ](https://www.treinaweb.com.br#faq)
- [ Vantagens de estudar na TreinaWeb ](https://www.treinaweb.com.br/vantagens-de-estudar-na-treinaweb)
- [ Cursos para empresas ](https://www.treinaweb.com.br/empresas)
- [ Sugira um novo curso ](https://www.treinaweb.com.br/sugerir-curso)
- [ Trabalhe conosco ](https://www.treinaweb.com.br/trabalhe-conosco)
- [ Artigos ](https://www.treinaweb.com.br/blog)
- [ Desenvolvedores e agentes ](https://www.treinaweb.com.br/developers)
- [ Contato ](https://www.treinaweb.com.br/contato)
- [ Política de privacidade ](https://www.treinaweb.com.br/politica-de-privacidade)
- [ Termos de uso ](https://www.treinaweb.com.br/termos-de-uso)

## Baixe nosso aplicativo

 [   Disponível na **App Store**  ](https://apps.apple.com/us/app/treinaweb/id1322729447) [   Disponível no **Google Play**  ](https://play.google.com/store/apps/details?id=br.com.treinaweb.mobile) 

  Av. Paulista, 1765, Conj 71 e 72 · Bela Vista · São Paulo · SP · 01311-200   © 2004 – 2026 TreinaWeb Tecnologia LTDA · CNPJ 06.156.637/0001-58
