Event-Driven Design
A abordagem Event-Driven Design (EDD) é uma alternativa à abordagem orientada a objetos. Se objetos são as "coisas que existem" no domínio da aplicação os eventos são as "coisas que acontecem" neste mesmo domínio.
Durante o desenvolvimento de aplicações, a abordagem orientada a objetos coloca toda ênfase nas coisas (objetos) que fazem parte do domínio da aplicação. A aplicação então é inicialmente compreendida como sendo formada por um conjunto de objetos e suas respectivas classes. Objetos podem ser complexos (nos relacionamentos com outros objetos) e sempre interagem entre si. Deste processo sempre resultará o bem conhecido Diagrama de Classes.
No mundo orientado a objetos, o desenvolvedor (analista de sistemas) interage com o usuário procurando identificar, nas falas dele, quais são os objetos existentes. O problema é que raramente os usuários pensam em termos de objetos. Eles pensam em termos de processos. Eles sabem explicar quais os procedimentos necessários para executarem as suas tarefas.
Para os usuários parece ser mais natural descrever a sequência de acontecimentos que ocorrem quando um problema precisa ser resolvido. Nesta visão o fluxo de dados é mais importante que os dados.
Dito de outra forma, a abordagem baseda em eventos enfatiza o comportamento do sistema enquanto que a abordagem baseada em objetos enfatiza a estrutura do sistema.