edomata.core
Type members
Classlikes
A monad transformer for Response
A monad transformer for Response
- Type parameters:
- A
output type
- E
domain event type
- F
effect type
- N
notification type
- R
rejection type
- Companion:
- object
- Source:
- Action.scala
Representation of a standard command message
Representation of a standard command message
- Type parameters:
- C
Command payload which is your command model
- Companion:
- object
- Source:
- RequestContext.scala
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
- Source:
- Decision.scala
This is monad transformer for Decision
This is monad transformer for Decision
- Type parameters:
- A
program output type
- E
event type
- F
effect type
- R
rejection type
- Companion:
- object
- Source:
- DecisionT.scala
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
- Source:
- Model.scala
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
- Source:
- Edomaton.scala
Representation of the result of running an edomaton
Representation of the result of running an edomaton
- Source:
- DomainCompiler.scala
Representation of a standard message metadata
Representation of a standard message metadata
- Companion:
- object
- Source:
- RequestContext.scala
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!
- Source:
- Model.scala
Representation of a standard input for an Edomaton
Representation of a standard input for an Edomaton
- Type parameters:
- C
Command type
- S
State model type
- Source:
- RequestContext.scala
Representation of programs that decide and emit notifications
Representation of programs that decide and emit notifications
This adds capability of emiting notifications/integration events to Decision programs
- Type parameters:
- A
output type
- E
domain event type
- N
notification type
- R
rejection type
- Companion:
- object
- Source:
- Response.scala