This demo showcases a complete message lifecycle within the Guardian-based workflow:
Admin pre-configuration (Schema & Branch setup)
Topic creation and routing configuration
External message ingestion simulation
Schema validation and branch-based distribution
Data transformation, calculation, and persistence
Publishing to IPFS and a Hedera topic
Forwarding processed VCs to additional external topics
The objective is to demonstrate how Verifiable Credentials (VCs) are validated, routed dynamically based on business rules, processed independently per branch, and then published to distributed infrastructure and external systems.
2. Admin Pre-Configuration (Schema & Branch Setup)
Demonstrate how an administrator configures validation and routing rules before runtime.
Steps Demonstrated
2.1 Reader Block Configuration
The Reader block is opened in edit mode.
Multiple branches are created to handle different commodity types:
2.2 Schema Assignment
A specific schema is assigned to the Reader block.
This schema defines the required structure of incoming VC documents.
Only VCs that conform to this schema are eligible for processing.
Key Outcome
Any incoming VC must:
Match the assigned schema.
Contain the expected routing field (commodityType).
If validation fails, the message is rejected before routing.
3. Topics and Routing Configuration
Show how message channels are created and routing rules are defined.
3.1 Topic Creation (Reader & Writer Blocks)
A new input topic is created.
It becomes the ingestion point for external VC messages.
Writer Block(s)
Output topics are created for:
Processed data publishing
Forwarding to second and third external topics
Each topic is:
Connected to the appropriate block
3.2 Routing Rule Configuration
Routing logic is configured inside the Reader block:
A specific field: commodityType
Conditional routing:
If commodityType = BEEF → Route to BEEF branch
If commodityType = DAIRY → Route to DAIRY branch
Routing only occurs after schema validation passes
Simulate a third-party system sending messages into the workflow.
4.1 External Block Usage
The External block simulates an outside system.
Two messages are sent:
Message 1 → commodityType = BEEF
Message 2 → commodityType = DAIRY
4.2 Topic Confirmation
We confirm:
Both messages are successfully written to the external input topic.
Messages are visible in the topic explorer/log.
No schema errors are triggered.
The ingestion pipeline is functioning correctly.