Domain Events

System State Change Events

For each Domain Command, we need to create a Domain Event representing the System Change State.

Domain Events in Evento Framework are implemented by extending the abstract class com.evento.common.modeling.messaging.payload.DomainEvent. This class has no required method to implement but extends the generic Event class that includes a property called Context which we will discuss later.

circle-info

Use Past verbs to indicate Events and Present for Commands.

Events can contain more information than the relative command for optimization purposes. (See TodoListTodoCheckedEvent)

Usually, each event has a very similar name to the relative command but with an ending Event and a Partial verbal time.

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import com.evento.common.documentation.Domain;
import com.evento.common.modeling.messaging.payload.DomainEvent;

@Domain(name = "TodoList")
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class TodoListCreatedEvent extends DomainEvent {

    private String identifier;
    private String content;
}

Last updated