Provider
DS2 MCL module
Consumer
How the contract controls the stream. The stream data plane is a custom data plane built
for the MCL module; it is not an EDC data plane. It forwards records from pX's source topic to pY's sink topic
only while a transfer process is active. pX's control plane starts a transfer process only for a request that
references a valid contract agreement between pX and pY. Suspend, resume and terminate requests travel from
pY's control plane to pX's control plane over DSP, and pX's control plane then signals the data plane. On
suspend, the data plane stops consuming from the source topic and retains its committed Kafka offset, so a
resume continues from the next unread record. The contract policy in this demo is open
(always-true): any participant can obtain an agreement, but no record is transferred without one.
Both participants use the same Redpanda (Kafka-compatible) broker on this host, so access is enforced by the
contract and the data plane, not by network isolation.
Negotiate a contract and start the stream
- Catalog request over DSPnot started
- Contract negotiationnot started
- Contract agreementnone, so no data may flow
- Transfer processnot started
- Data plane flowno data flow active
Records arriving at pY
Idle: nothing is being transferred.
Suspend, resume, terminate
These buttons call pY's EDC Management API to suspend, resume or terminate the transfer process. After a suspend, Emitted keeps rising and Received stops, because the data plane has stopped consuming from the source topic. After the resume, the records emitted in between are delivered in order and Gaps stays at 0. Terminate ends the transfer process permanently; it cannot be resumed.
Ask for the stream without a contract
pY submits a transfer request for the same asset with a contract agreement ID that was never negotiated. pY's control plane finds no such agreement and rejects the request with HTTP 400, so nothing is sent to pX and the data plane does not start. A forged request sent directly to pX over DSP is rejected by pX's control plane in the same way.