Baseleg Docs

Context map

The eight bounded contexts of Baseleg. The v1 spine (People, Aircraft, Scheduling) is the primary delivery focus. All other contexts are intentionally lite until the spine is reliable.

v1 primary
v1 lite
adapter
v1 spine
<a href="/domain/bounded-contexts/people/" style="text-decoration:none;display:block;background:color-mix(in srgb,var(--docs-secondary) 12%,#ffffff);border:2px solid var(--docs-secondary);border-radius:10px;padding:14px 16px">
  <div style="font-weight:700;color:var(--docs-primary);margin-bottom:4px">People</div>
  <div style="font-size:0.75rem;color:color-mix(in srgb,var(--docs-primary) 60%,transparent);line-height:1.4">Members · students · instructors · staff · identity &amp; roles</div>
</a>

<a href="/domain/bounded-contexts/aircraft/" style="text-decoration:none;display:block;background:color-mix(in srgb,var(--docs-secondary) 12%,#ffffff);border:2px solid var(--docs-secondary);border-radius:10px;padding:14px 16px">
  <div style="font-weight:700;color:var(--docs-primary);margin-bottom:4px">Aircraft</div>
  <div style="font-size:0.75rem;color:color-mix(in srgb,var(--docs-primary) 60%,transparent);line-height:1.4">Fleet registry · airworthiness state · grounded protection</div>
</a>

<a href="/domain/bounded-contexts/scheduling/" style="text-decoration:none;display:block;background:color-mix(in srgb,var(--docs-secondary) 12%,#ffffff);border:2px solid var(--docs-secondary);border-radius:10px;padding:14px 16px">
  <div style="font-weight:700;color:var(--docs-primary);margin-bottom:4px">Scheduling</div>
  <div style="font-size:0.75rem;color:color-mix(in srgb,var(--docs-primary) 60%,transparent);line-height:1.4">Bookings · conflict detection · calendar views</div>
</a>
MemberId →
booking owner
& instructor ref
Scheduling
→ AircraftId
+ grounded
state check
v1 lite
<a href="/domain/bounded-contexts/training/" style="text-decoration:none;display:block;background:var(--docs-surface-2);border:1px solid var(--docs-border);border-radius:10px;padding:14px 16px">
  <div style="display:flex;justify-content:space-between;align-items:baseline">
    <div style="font-weight:700;color:var(--docs-primary);margin-bottom:4px">Training</div>
    <div style="font-size:0.65rem;color:color-mix(in srgb,var(--docs-primary) 40%,transparent)">lite</div>
  </div>
  <div style="font-size:0.75rem;color:color-mix(in srgb,var(--docs-primary) 55%,transparent);line-height:1.4">Lessons · flight records · endorsements · training progression</div>
</a>

<a href="/domain/bounded-contexts/compliance/" style="text-decoration:none;display:block;background:var(--docs-surface-2);border:1px solid var(--docs-border);border-radius:10px;padding:14px 16px">
  <div style="display:flex;justify-content:space-between;align-items:baseline">
    <div style="font-weight:700;color:var(--docs-primary);margin-bottom:4px">Compliance</div>
    <div style="font-size:0.65rem;color:color-mix(in srgb,var(--docs-primary) 40%,transparent)">lite</div>
  </div>
  <div style="font-size:0.75rem;color:color-mix(in srgb,var(--docs-primary) 55%,transparent);line-height:1.4">Currency tracking · compliance alerts · document expiry</div>
</a>

<a href="/domain/bounded-contexts/billing/" style="text-decoration:none;display:block;background:var(--docs-surface-2);border:1px solid var(--docs-border);border-radius:10px;padding:14px 16px">
  <div style="display:flex;justify-content:space-between;align-items:baseline">
    <div style="font-weight:700;color:var(--docs-primary);margin-bottom:4px">Billing</div>
    <div style="font-size:0.65rem;color:color-mix(in srgb,var(--docs-primary) 40%,transparent)">lite</div>
  </div>
  <div style="font-size:0.75rem;color:color-mix(in srgb,var(--docs-primary) 55%,transparent);line-height:1.4">Charge items · invoice drafts · invoice lifecycle</div>
</a>

<a href="/domain/bounded-contexts/reporting/" style="text-decoration:none;display:block;background:var(--docs-surface-2);border:1px solid var(--docs-border);border-radius:10px;padding:14px 16px">
  <div style="display:flex;justify-content:space-between;align-items:baseline">
    <div style="font-weight:700;color:var(--docs-primary);margin-bottom:4px">Reporting</div>
    <div style="font-size:0.65rem;color:color-mix(in srgb,var(--docs-primary) 40%,transparent)">lite</div>
  </div>
  <div style="font-size:0.75rem;color:color-mix(in srgb,var(--docs-primary) 55%,transparent);line-height:1.4">Operational reports · data exports · summaries</div>
</a>
adapter
Notifications
no domain rules of its own
Email · SMS · in-app delivery · triggered by events from all other contexts

Cross-context rules

Contexts communicate by identifier only — never by importing another context’s domain package.

FromToWhat is shared
SchedulingPeopleMemberId (booking owner, instructor)
SchedulingAircraftAircraftId + grounded/available status
TrainingPeopleMemberId (student, instructor)
TrainingSchedulingBookingId (optional lesson → booking link)
BillingSchedulingBookingId (charge items linked to bookings)
BillingPeopleMemberId (invoice recipient)
CompliancePeopleMemberId (currency per member)
ComplianceAircraftAircraftId (airworthiness documents)
NotificationsAllReceives events; reads Member contact details
ReportingAllRead-model queries via infrastructure only

See Context map for the full written description.