edomata.core
Type members
Classlikes
Representation of a standard command message
Representation of a standard command message
- Type parameters:
- C
Command payload which is your command model
- Companion:
- object
Represents programs that decide in an event driven context
Represents programs that decide in an event driven context
This is basically a simple state machine like the following:
[*] -> InDecisive
InDecisive -- event --> Accepted
InDecisive -- join --> InDecisive
InDecisive -- rejection --> Rejected (resets and terminates)
Accepted -- event --> Accepted (accumulates)
Accepted -- rejection --> Rejected (resets and terminates)
It forms a monad error and also is traversable.
- Type parameters:
- A
program output type
- E
event type
- R
rejection type
- Companion:
- object
A purely functional, event driven domain model
A purely functional, event driven domain model
- Type parameters:
- Event
domain events
- Rejection
domain error type
- State
state model of your program, a.k.a aggregate root
Represents programs that are event driven state machines (a Mealy machine)
Represents programs that are event driven state machines (a Mealy machine)
these programs can use input to decide on a state transition, and optionally emit a sequence of notifications for communication.
- Type parameters:
- A
output type
- E
internal event type
- Env
input type
- F
effect type
- N
notification type, a.k.a external event, integration event
- R
rejection type
- Companion:
- object
Representation of the result of running an edomaton
Representation of the result of running an edomaton
Representation of a standard message metadata
Representation of a standard message metadata
- Companion:
- object
A type class that captures domain model
A type class that captures domain model
note that due to uniqueness requirements for this typeclass, it is sealed and the only way to create an instance is through implementing DomainModel.
so don't create several instances as it is a bad idea and may change your domain model behavior in different contexts!
Representation of programs that decide and emit notifications