Context
A Context represents a bounded context in Domain-Driven Design - a cohesive unit of business functionality with clear boundaries.
Key Fields
- Name: Context identifier
- Team: Team responsible for this context
- Description: Purpose and business capabilities
- Business Products: Products this context supports
- Regions: Regions where this context operates
- Assigned Systems: Systems that host this context
- User Groups (Actors): Actors that interact with this context
- Subscribed Events: Events this context listens to
- Published Events: Events this context produces
- Called Interfaces: Interfaces this context calls
- Provided Interfaces: Interfaces this context offers
How It Works
graph TB
Context[Context] -->|hosted by| System[System]
Context -->|provides| Interfaces[Interfaces]
Context -->|publishes| Events[Events]
Context -->|scoped to| Products[Products]
Context -->|operates in| Regions[Regions]
Domain-Driven Design
A bounded context is:
- A specific responsibility within your system
- A language boundary (ubiquitous language within)
- An ownership boundary (single team responsible)
- An integration boundary (explicit contracts with other contexts)
Interfaces vs Events
- Interfaces: Synchronous calls between contexts (request/response)
- Events: Asynchronous messages (publish/subscribe)
Creating Interfaces and Events
In the "Published Interfaces" and "Published Events" fields:
- Type a new name and press Enter
- The system creates the interface/event automatically
- Other contexts can now call/subscribe to it
The editor shows which contexts consume your interfaces/events.
Integration
- Storage:
korgraph database, type context
- Hierarchy: Child of
subdomain
- Relationships: Many-to-many with systems, actors, interfaces, events
Derived Connections
System-to-system edges are automatically created when:
- Contexts from different systems call each other's interfaces
- Contexts from different systems publish/subscribe to events
Tips
- Keep contexts focused on a single business capability
- Define clear interface contracts
- Use events for decoupling and async communication
- Assign products/regions to enable filtering