A Data Plane SDK for Go. This SDK provides components for creating Go-based data planes that interface with Dataspace
Protocol Control Planes via the Data Plane Signaling API
. The SDK includes state management, support for reliable
qualities of service, recovery, and error handling.
- Purpose: Prepares for receiving data
- Function:
Prepare(ctx context.Context, message DataFlowPrepareMessage) (*DataFlowResponseMessage, error)
- Returns: Response message or error
- Purpose: Initiates a data flow on the provider side
- Function:
Start(ctx context.Context, message DataFlowStartMessage) (*DataFlowResponseMessage, error)
- Takes: DataFlowStartMessage as input
- Purpose: Ends a data flow
- Function:
Terminate(ctx context.Context, processID string) error
- Requires: Process ID
- Purpose: Temporarily halts a data flow
- Function:
Suspend(ctx context.Context, processID string) error
- Requires: Process ID
- Purpose: Handles recovery of data flows
- Function:
Recover(ctx context.Context) error
- Processes multiple flows that need recovery
- Maintains different states for data flows:
- Preparing
- Prepared
- Starting
- Started
- Terminated
- Suspended
- Deduplication logic for handling duplicate messages
- Transaction support via TransactionContext
- Comprehensive error handling and propagation
- Extension points through callback functions
- : Custom prepare logic
OnPrepare
- : Custom start logic
OnStart
- : Custom termination logic
OnTerminate
- : Custom suspension logic
OnSuspend
- : Custom recovery logic
OnRecover
See the examples.