Skip to content

Implement Domain Events as first-class citizens in domain model #13

@wallanpsantos

Description

@wallanpsantos

Título: Adicionar Domain Events como first-class citizens
Labels: enhancement, architecture, clean-architecture
Descrição:
Eventos devem ser parte integral do modelo de domínio.

Solução Proposta:

// CORE - Aggregate Root base
public abstract class AggregateRoot {
    private final List<DomainEvent> domainEvents = new ArrayList<>();
    
    protected void raiseEvent(DomainEvent event) {
        domainEvents.add(event);
    }
    
    public List<DomainEvent> getUncommittedEvents() {
        return new ArrayList<>(domainEvents);
    }
}

Tarefas:

  • Criar AggregateRoot base class
  • Fazer Wallet estender AggregateRoot
  • Criar eventos específicos (WalletCreated, MoneyDeposited, etc.)
  • Implementar Event Store pattern
  • Criar Domain Event Handlers

Metadata

Metadata

Assignees

Labels

architectureAlteração na arquiteturaenhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions