CONTINUE Command Overview
The CONTINUE
command is used to resume event delivery for a previously paused subscription. It allows clients to control the flow of events they receive without having to unsubscribe and resubscribe.
Purpose
The primary purpose of the CONTINUE
command is to:
Resume event delivery for a specific event type that was previously paused
Allow clients to manage their event processing capacity by controlling when they receive events
Provide a mechanism to handle temporary processing backlogs without losing events
When to Use
Use the CONTINUE
command when:
Your client has caught up with processing its backlog and is ready to receive new events
A temporary processing issue has been resolved
You want to resume normal event flow after a maintenance period
You need to selectively resume specific event types while keeping others paused
How It Works
Validation: The system verifies that:
The client exists and is authenticated
The client has an active subscription to the specified event type
The subscription is currently in a paused state
Resumption: When a subscription is continued:
The subscription's state is changed from "paused" to "active"
Any events that were queued during the pause period are delivered
New events begin flowing to the client immediately
Position Preservation: The client's position in the event stream is maintained:
Events are delivered from the point where the client last acknowledged
No events are skipped or lost during the pause/continue cycle
Relationship to Other Commands
PAUSE: The counterpart to
CONTINUE
, used to temporarily stop event deliverySUB: Establishes the initial subscription that can later be paused or continued
UNSUB: Permanently removes a subscription (unlike
PAUSE
which is temporary)ACK: Still required to acknowledge events after continuing a subscription
Best Practices
Selective Continuation: Only continue subscriptions when your client is ready to process events
Monitoring: Track the number of queued events during pause periods to anticipate processing load
Backpressure Management: Use pause/continue cycles strategically to implement backpressure
Error Handling: Implement proper error handling for the case where a subscription cannot be continued
Domain-Level Control: Use wildcards to continue multiple related event types at once
Implementation Details
The CONTINUE
command is implemented in the EnSyncMaster system using:
A state management system that tracks subscription status
Event queuing mechanisms that buffer events during pause periods
Client position tracking to ensure event delivery continuity
Permission checks to ensure only authorized clients can continue subscriptions
Security Considerations
Only the client that owns a subscription can continue it
Clients can only continue subscriptions to event types they have permission to receive
The system validates client authentication before processing continue requests