- 2 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: Order Management System

Preview Mermaid Code
C4Context title Order Management System - L1 Context Diagram Person(customer, "Customer", "Places orders for products") Person(support_agent, "Support Agent", "Handles customer inquiries and returns") Person(warehouse_staff, "Warehouse Staff", "Picks and ships orders") System(order_system, "Order Management System", "Manages orders, inventory, and fulfillment") System_Ext(payment_gateway, "Payment Gateway", "Processes credit card payments") System_Ext(email_service, "Email Service", "Sends order confirmations and updates") System_Ext(warehouse_erp, "Warehouse ERP", "Manages physical inventory and shipping") Rel(customer, order_system, "Places orders", "Web/Mobile") Rel(support_agent, order_system, "Manages returns", "Web") Rel(warehouse_staff, warehouse_erp, "Checks order fulfillment", "Web") Rel(order_system, payment_gateway, "Processes payments", "REST API") Rel(order_system, email_service, "Sends notifications", "SMTP") Rel(order_system, warehouse_erp, "Sends fulfillment requests", "REST API")
C4Context
    title Order Management System - L1 Context Diagram

    Person(customer, "Customer", "Places orders for products")
    Person(support_agent, "Support Agent", "Handles customer inquiries and returns")
    Person(warehouse_staff, "Warehouse Staff", "Picks and ships orders")

    System(order_system, "Order Management System", "Manages orders, inventory, and fulfillment")

    System_Ext(payment_gateway, "Payment Gateway", "Processes credit card payments")
    System_Ext(email_service, "Email Service", "Sends order confirmations and updates")
    System_Ext(warehouse_erp, "Warehouse ERP", "Manages physical inventory and shipping")

    Rel(customer, order_system, "Places orders", "Web/Mobile")
    Rel(support_agent, order_system, "Manages returns", "Web")
    Rel(warehouse_staff, warehouse_erp, "Checks order fulfillment", "Web")

    Rel(order_system, payment_gateway, "Processes payments", "REST API")
    Rel(order_system, email_service, "Sends notifications", "SMTP")
    Rel(order_system, warehouse_erp, "Sends fulfillment requests", "REST API")

Test Data Setup

To recreate this diagram in Nodinite, create the following entities.

Systems:

  • Customer (C4Type: Person)
  • Support Agent (C4Type: Person)
  • Warehouse Staff (C4Type: Person)
  • Order Management System (C4Type: InternalSystem)
  • Payment Gateway (C4Type: ExternalSystem)
  • Email Service (C4Type: ExternalSystem)
  • Warehouse ERP (C4Type: ExternalSystem)

Next Step

Zoom into the Order Management System with the L2: Container Diagram Example to see its internal structure.