Files
aether/model/model.go
Hugo Nijhuis e9e50c021f
All checks were successful
CI / build (push) Successful in 1m13s
Initial aether repository structure
Distributed actor system with event sourcing for Go:
- event.go - Event, ActorSnapshot, EventStore interface
- eventbus.go - EventBus, EventBroadcaster for pub/sub
- nats_eventbus.go - NATS-backed cross-node event broadcasting
- store/ - InMemoryEventStore (testing), JetStreamEventStore (production)
- cluster/ - Node discovery, leader election, shard distribution
- model/ - EventStorming model types

Extracted from arcadia as open-source infrastructure component.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-08 19:30:02 +01:00

48 lines
1.5 KiB
Go

package model
// EventStorming model types
// Model represents an event storming model
type Model struct {
ID string `json:"id"`
Name string `json:"name"`
Events []DomainEvent `json:"events"`
Commands []Command `json:"commands"`
Aggregates []Aggregate `json:"aggregates"`
Processes []BusinessProcess `json:"processes"`
}
// DomainEvent represents a domain event definition
type DomainEvent struct {
ID string `json:"id"`
Name string `json:"name"`
Description string `json:"description"`
Data map[string]string `json:"data"`
}
// Command represents a command definition
type Command struct {
ID string `json:"id"`
Name string `json:"name"`
Actor string `json:"actor"`
TriggersEvent string `json:"triggersEvent"`
Data map[string]string `json:"data"`
}
// Aggregate represents an aggregate definition
type Aggregate struct {
ID string `json:"id"`
Name string `json:"name"`
Events []string `json:"events"`
Commands []string `json:"commands"`
Invariants []string `json:"invariants"`
}
// BusinessProcess represents a business process definition
type BusinessProcess struct {
ID string `json:"id"`
Name string `json:"name"`
TriggerEvents []string `json:"triggerEvents"`
OutputCommands []string `json:"outputCommands"`
}