- 4 minutes to read

O2C Demo: Repository Binding

This page is part of the Order-to-Cash demo. It explains the Repository Binding each Log Event carries, which is the point of the demo: Nodinite builds the Integration, Systems, Services, service relations, and the BPM from logging alone.

Repository Binding Context Options

Each Log Event includes a Repository Binding JSON in the Context section that automatically creates the integration landscape. This mechanism turns raw Log Events into a documented, visualized integration landscape. The context key is ExtendedProperties/1.0#RepositoryBinding; Repository Binding and BPM Binding document every property.

Repository Binding Structure

The structure for each step:

{
  "Name": "Standard Transport Contract",
  "Service": {
    "Name": "INT1337-ServiceCode-Description",
    "Direction": "Receive|Send",
    "System": {
      "Name": "System Name"
    },
    "Integration": {
      "Name": "INT1337 - Order-to-Cash"
    },
    "ExternalServiceRelations": [
      {
        "Name": "INT1337-PreviousService",
        "Direction": "Send",
        "System": {
          "Name": "Previous System Name"
        }
      }
    ],
    "InternalServiceRelations": [
      {
        "Name": "INT1337-SameStepService",
        "Direction": "Receive",
        "System": {
          "Name": "System Name"
        }
      }
    ],
    "BPMs": [
      {
        "Name": "INT1337 - Order-to-Cash Flow",
        "ArtifactRenaming": "Step Description",
        "Domain": {
          "Name": "Domain Name",
          "Index": 0
        },
        "Step": 0,
        "ServiceRelations": [
          {
            "Name": "INT1337-RelatedService",
            "ArtifactRenaming": "Related Step Description",
            "Direction": "Send",
            "Step": 1,
            "Label": "To related step",
            "ConnectorStyle": 0,
            "SourceAttachmentPoint": 3,
            "TargetAttachmentPoint": 1,
            "System": {
              "Name": "Related System Name"
            },
            "Domain": {
              "Name": "Related Domain Name",
              "Index": 1
            }
          }
        ]
      }
    ]
  }
}

Key Concepts

  • Service: Defines this step's Service (e.g., INT1337-RCV-Order-Incoming, INT1337-ENT-Order-Entry)
  • System: The System where the Service runs (e.g., Portal, ERP, WMS)
  • Direction: Receive or Send - this demo uses only these two directions, but real-world scenarios may include other directions like Both, Unknown, etc.
  • ExternalServiceRelations: Links to Services in different Systems (cross-system connections). Added for Receive direction Services to reference the previous Send Service that triggered this step
  • InternalServiceRelations: Links to Services in the same System (same-system connections). Added for Send direction Services to reference the paired Receive Service in the same step
  • BPMs: Business Process Model array containing process flow metadata for visualization
  • Domain: The business Domain and its index in the process flow (0=Sales, 1=Planning, 2=Logistics, 3=Finance)
  • Step: 0-based step number in the process (0 for the first step, 1 for the second, etc.) - displays as 1-based in the UI. Note: Step numbers are always non-negative (0 or positive integers)
  • ServiceRelations (BPM): Links to downstream Services, showing process flow arrows in the BPM. Each relation must include:
    • Name: The name of the related Service
    • Direction: The direction of the related Service (not the current Service). For example, if the current Service is "Receive" and points to a downstream "Send" Service, the Direction field is "Send"
    • System: The System where the related Service runs
    • Domain: The Domain where the related Service exists
    • Step: The step number of the related Service (always 0 or positive)
    • ArtifactRenaming: Display name for the related milestone in the BPM matrix
    • Label: Text label for the connector arrow
  • ConnectorStyle: Arrow style (0=Arrow, 1=DottedArrow, 2=Line, 3=DottedLine, 4=StraightArrow, 5=StraightDottedArrow)

How the Logging Service Processes the Binding

When AllowRepositoryAutomapping is true, the Logging Service:

  1. Reads the Repository Binding JSON from each Log Event
  2. Creates or updates the Integration entity
  3. Creates or updates the Service entity with the proper direction
  4. Creates or updates the System entity
  5. Creates the service relations (ServiceRelations) linking steps together based on step dependencies
  6. Assigns the Domain and step order for BPM visualization with proper connector styling

Important

In production environments, events may arrive out of sequential order due to network latency, system delays, retry logic, or asynchronous processing. The Repository Binding structure includes explicit Step, System, and Domain information in every ServiceRelation, so Nodinite reconstructs the process flow correctly regardless of event arrival order. This demo uses sequential ordering for simplicity, but the structure handles non-sequential scenarios.

Approach Result
❌ Without Repository Binding You must create all Systems, Services, and relations manually in the Web Client
✅ With Repository Binding Nodinite builds the landscape automatically from logging

Next Steps