Abordagem arquitetural dos princípios do Domain-Driven Design (DDD) com o padrão arquitetural do Hexagonal Architecture (Ports and Adapters).
Foi utilizado o node-EventEmitter para enviar e receber comandos e eventos no sistema. Cada vez que alguém faz uma solicitação de retirada de saldo (PIX), um evento é disparado para registrar a transação. Além disso, sempre que um novo usuário é criado, também é disparado um evento."
O controlador analisa esses comandos/eventos usando objetos de transferência de dados (DTOs). Ele mapeia esses DTOs para objetos de comando/consulta.
O controlador passa os objetos de comando/consulta para um serviço de aplicativo. O serviço de aplicativo lida com a lógica principal. Ele usa serviços de domínio, entity e domain services para processar a lógica de negócios. O serviço de aplicativo interage com a camada de infraestrutura por meio de interfaces específicas PORTS (Geralmente interfaces ou classes abstratas).