Skip to content

Domains

domain models a bounded context and groups related resources.

Example

This example models a Commerce domain with an inline service and a nested Payments subdomain.

main.ec
domain Commerce {
version 1.0.0
name "Commerce Domain"
summary "Order and payment capabilities"
owner commerce-team
service OrdersService {
version 1.0.0
sends event OrderCreated@1.0.0
}
subdomain Payments {
version 1.0.0
service PaymentService {
version 1.0.0
receives event OrderCreated@1.0.0
}
}
}

Properties

PropertyTypeRequiredDescriptionExample
versionsemverYesResource version.1.0.0
namestringNoDisplay name (defaults to id)."Commerce Domain"
summarystringNoShort description."Order and payment capabilities"
ownerreferenceNo (repeatable)Team/user owner reference.owner commerce-team
servicereference/inlineNo (repeatable)Include or define services in the domain.service OrdersService@1.0.0
subdomainreference/inlineNo (repeatable)Include or define subdomains.subdomain Payments { ... }
data-productreferenceNo (repeatable)Related data products.data-product CommerceInsights@1.0.0
flowreferenceNo (repeatable)Related flows.flow OrderFulfillment@1.0.0
sendsstatementNo (repeatable)Domain-level produced messages.sends event OrderCreated
receivesstatementNo (repeatable)Domain-level consumed messages.receives event PaymentProcessed
draftbooleanNoMarks resource as draft.draft true
deprecatedbooleanNoMarks resource as deprecated.deprecated true