Skip to content

Messages

Messages are facts, intents, or requests that move between services.

  • event: something that happened
  • command: a request to do something
  • query: a request for information

Example

This example shows the three message types: one event, one command, and one query.

main.ec
event OrderCreated {
version 1.0.0
name "Order Created"
summary "Raised when an order is created"
schema "./schemas/order-created.json"
}
command CreateOrder {
version 1.0.0
name "Create Order"
summary "Requests order creation"
}
query GetOrderById {
version 1.0.0
name "Get Order By ID"
summary "Returns one order"
}

Common properties

PropertyTypeRequiredDescriptionExample
versionsemverYesResource version.1.0.0
namestringNoDisplay name (defaults to id)."Order Created"
summarystringNoShort description."Raised when an order is created"
ownerreferenceNo (repeatable)Team/user owner reference.owner orders-team
schemastringNoContract/schema location."./schemas/order-created.json"
draftbooleanNoMarks resource as draft.draft true
deprecatedbooleanNoMarks resource as deprecated.deprecated true

Usage in services

UsageExample
Produce an eventsends event OrderCreated@1.0.0
Consume a commandreceives command CreateOrder@1.0.0
Consume a queryreceives query GetOrderById@1.0.0
Route via channelsends event OrderCreated to OrdersTopic@1.0.0