- 3 minutes to read

L1 System Context Diagram Example

The L1 Context diagram shows one central system, its actors (people), and the external systems it depends on. It is the highest-level diagram in the C4 zoom hierarchy and the most accessible for non-technical audiences.

See Example C4 Diagrams for an overview of all diagram types and when to use each.

To use this example in Nodinite, copy the Mermaid markup below and follow the Creating Your First C4 Diagram import walkthrough to create a Diagram Set, import the markup, and bind nodes to your Repository.

When to Use

  • Onboarding stakeholders — executives, business analysts, board members
  • Establishing the system boundary before zooming into L2
  • Documenting high-level integrations without technical detail
  • Avoids databases, APIs, or protocols — those belong in L2

Example: O2C Portal System Context

This example uses the Order-to-Cash (O2C) demo data and places the Portal system at the centre. The three O2C systems it connects to (ERP, tax authority, payment gateway) are shown as external actors. Two external database and queue systems are also included to demonstrate SystemDb_Ext and SystemQueue_Ext. The BiRel connector between Portal and the EDI gateway demonstrates two-way document exchange.

Preview Mermaid Code
C4Context title Portal — O2C System Context Diagram Person(customer, "Customer", "Places orders and receives order confirmations") Person_Ext(logistics_partner, "Logistics Partner", "External carrier providing delivery status updates") System(portal, "Portal", "Receives customer orders and delivers order confirmations") System_Ext(erp, "ERP", "Processes order entries and returns production schedule confirmations") System_Ext(payment_gateway, "Payment Gateway", "Processes customer credit card payments") System_Ext(tax_authority, "Tax Authority Portal", "Receives and validates electronic invoice submissions") SystemDb_Ext(carrier_tracking, "Carrier Tracking DB", "External database providing real-time parcel tracking data") SystemQueue_Ext(edi_gateway, "EDI Gateway", "External B2B message queue for trading partner document exchange") Rel(customer, portal, "Places orders and receives confirmations", "HTTPS / JSON") Rel_D(portal, erp, "Forwards order for entry", "XML / O2C.Order.Entry/1.0") Rel_Back(erp, portal, "Returns order confirmation", "CSV / O2C.Order.Confirmation/1.0") Rel(portal, payment_gateway, "Processes payment at order placement", "REST API") Rel(portal, tax_authority, "Submits e-invoices", "REST API") Rel(logistics_partner, carrier_tracking, "Updates parcel tracking status", "REST API") Rel(portal, carrier_tracking, "Reads delivery confirmation for orders", "REST API") BiRel(portal, edi_gateway, "Exchanges order and despatch documents", "AS2")
C4Context
    title Portal — O2C System Context Diagram

    Person(customer, "Customer", "Places orders and receives order confirmations")
    Person_Ext(logistics_partner, "Logistics Partner", "External carrier providing delivery status updates")

    System(portal, "Portal", "Receives customer orders and delivers order confirmations")

    System_Ext(erp, "ERP", "Processes order entries and returns production schedule confirmations")
    System_Ext(payment_gateway, "Payment Gateway", "Processes customer credit card payments")
    System_Ext(tax_authority, "Tax Authority Portal", "Receives and validates electronic invoice submissions")
    SystemDb_Ext(carrier_tracking, "Carrier Tracking DB", "External database providing real-time parcel tracking data")
    SystemQueue_Ext(edi_gateway, "EDI Gateway", "External B2B message queue for trading partner document exchange")

    Rel(customer, portal, "Places orders and receives confirmations", "HTTPS / JSON")
    Rel_D(portal, erp, "Forwards order for entry", "XML / O2C.Order.Entry/1.0")
    Rel_Back(erp, portal, "Returns order confirmation", "CSV / O2C.Order.Confirmation/1.0")
    Rel(portal, payment_gateway, "Processes payment at order placement", "REST API")
    Rel(portal, tax_authority, "Submits e-invoices", "REST API")
    Rel(logistics_partner, carrier_tracking, "Updates parcel tracking status", "REST API")
    Rel(portal, carrier_tracking, "Reads delivery confirmation for orders", "REST API")
    BiRel(portal, edi_gateway, "Exchanges order and despatch documents", "AS2")

Shape Coverage

This example exercises the following L1 shape vocabulary from the toolbox plan:

Shape used Macro Notes
Person (internal) Person Customer
Person (external) Person_Ext Logistics Partner
System (central) System Portal
System (external) System_Ext ERP, Payment Gateway, Tax Authority
Database System (external) SystemDb_Ext Carrier Tracking DB
Queue System (external) SystemQueue_Ext EDI Gateway
Directional connector Down Rel_D Portal → ERP order flow
Reverse connector Rel_Back Confirmation returned without swapping FROM/TO
Bidirectional connector BiRel Portal ↔ EDI Gateway two-way exchange

Next Step

Zoom into the Portal with the L2: Container Diagram Example to see its domain and service structure.