Deleting persistent subscriptions to `$all` is not supported over the HTTP API. If you want to delete persistent subscriptions to `$all`, the gRPC client should be used instead. :::
By default, reading a stream via a persistent subscription returns a single event per request and does not embed the event properties as part of the response.
Persistent subscriptions to `$all` are not supported over the HTTP API. If you want to read events via a persistent subscriptions to `$all`, the gRPC client should be used instead. :::
URI | Supported Content Types | Method |
---|
/subscriptions/{stream}/{subscription_name} /subscriptions/{stream}/{subscription_name}?embed={embed} /subscriptions/{stream}/{subscription}/{count}?embed={embed} | application/vnd.eventstore.competingatom+xml application/vnd.eventstore.competingatom+json | GET |
Parameter | Description |
---|
stream | The stream the persistent subscription is on. |
subscription_name | The name of the subscription group. |
count | How many events to return for the request. |
embed | None , Content , Rich , Body , PrettyBody , TryHarder |
Read Reading Streams for information on the different embed levels.
{
"title": "All Events Persistent Subscription",
"id": "http://localhost:2113/subscriptions/newstream/competing_consumers_group1",
"updated": "2015-12-02T09:17:48.556545Z",
"author": {
"name": "EventStore"
},
"headOfStream": false,
"links": [
{
"uri": "http://localhost:2113/subscriptions/newstream/competing_consumers_group1/ack%3Fids=c322e299-cb73-4b47-97c5-5054f920746f",
"relation": "ackAll"
},
{
"uri": "http://localhost:2113/subscriptions/newstream/competing_consumers_group1/nack%3Fids=c322e299-cb73-4b47-97c5-5054f920746f",
"relation": "nackAll"
},
{
"uri": "http://localhost:2113/subscriptions/newstream/competing_consumers_group1/1%3Fembed=None",
"relation": "previous"
},
{
"uri": "http://localhost:2113/subscriptions/newstream/competing_consumers_group1",
"relation": "self"
}
],
"entries": [
{
"title": "1@newstream",
"id": "http://localhost:2113/streams/newstream/1",
"updated": "2015-12-02T09:17:48.556545Z",
"author": {
"name": "EventStore"
},
"summary": "SomeEvent",
"links": [
{
"uri": "http://localhost:2113/streams/newstream/1",
"relation": "edit"
},
{
"uri": "http://localhost:2113/streams/newstream/1",
"relation": "alternate"
},
{
"uri": "http://localhost:2113/subscriptions/newstream/competing_consumers_group1/ack/c322e299-cb73-4b47-97c5-5054f920746f",
"relation": "ack"
},
{
"uri": "http://localhost:2113/subscriptions/newstream/competing_consumers_group1/nack/c322e299-cb73-4b47-97c5-5054f920746f",
"relation": "nack"
}
]
}
]
}
Clients must acknowledge (or not acknowledge) messages in the competing consumer model. If the client fails to respond in the given timeout period, the message is retried. You should use the rel
links in the feed for acknowledgements not bookmark URIs as they are subject to change in future versions.
For example:
{
"uri": "http://localhost:2113/subscriptions/newstream/competing_consumers_group1/ack/c322e299-cb73-4b47-97c5-5054f920746f",
"relation": "ack"
}
URI | Supported Content Types | Method |
---|
/subscriptions/{stream}/{subscription_name}/ack?ids={messageids} | application/json | POST |
Parameter | Description |
---|
stream | The stream the persistent subscription is on. |
subscription_name | The name of the subscription group. |
messageids | The ids of the messages that needs to be ACKed |
URI | Supported Content Types | Method |
---|
/subscriptions/{stream}/{subscription_name}/ack/{messageid} | application/json | POST |
Parameter | Description |
---|
stream | The stream to the persistent subscription is on. |
subscription_name | The name of the subscription group. |
messageid | The id of the message that needs to be acked |
URI | Supported Content Types | Method |
---|
/subscriptions/{stream}/{subscription_name}/nack?ids={messageids}?action={action} | application/json | POST |
Parameter | Description | |
---|
stream | The stream to the persistent subscription is on. | |
subscription_name | The name of the subscription group. | |
action | - Park: Don't retry the message, park it until a request is sent to reply the parked messages
- Retry: Retry the message
- Skip: Discard the message
- Stop: Stop the subscription
| |
messageid | The id of the message that needs to be acked | |
URI | Supported Content Types | Method |
---|
/subscriptions/{stream}/{subscription_name}/nack/{messageid}?action={action} | application/json | POST |
URI | Supported Content Types | Method |
---|
/subscriptions/{stream}/{subscription_name}/replayParked | application/json | POST |
URI | Method |
---|
/subscriptions | GET |
[
{
"links": [
{
"href": "http://localhost:2113/subscriptions/newstream/competing_consumers_group1/info",
"rel": "detail"
}
],
"eventStreamId": "newstream",
"groupName": "competing_consumers_group1",
"parkedMessageUri": "http://localhost:2113/streams/$persistentsubscription-newstream::competing_consumers_group1-parked",
"getMessagesUri": "http://localhost:2113/subscriptions/newstream/competing_consumers_group1/1",
"status": "Live",
"averageItemsPerSecond": 0.0,
"totalItemsProcessed": 0,
"lastProcessedEventNumber": -1,
"lastKnownEventNumber": 5,
"connectionCount": 0,
"totalInFlightMessages": 0
},
{
"links": [
{
"href": "http://localhost:2113/subscriptions/another_newstream/competing_consumers_group1/info",
"rel": "detail"
}
],
"eventStreamId": "another_newstream",
"groupName": "competing_consumers_group1",
"parkedMessageUri": "http://localhost:2113/streams/$persistentsubscription-another_newstream::competing_consumers_group1-parked",
"getMessagesUri": "http://localhost:2113/subscriptions/another_newstream/competing_consumers_group1/1",
"status": "Live",
"averageItemsPerSecond": 0.0,
"totalItemsProcessed": 0,
"lastProcessedEventNumber": -1,
"lastKnownEventNumber": -1,
"connectionCount": 0,
"totalInFlightMessages": 0
}
]
URI | Supported Content Types | Method |
---|
/subscriptions/{stream} | application/json | GET |
[
{
"links": [
{
"href": "http://localhost:2113/subscriptions/newstream/competing_consumers_group1/info",
"rel": "detail"
}
],
"eventStreamId": "newstream",
"groupName": "competing_consumers_group1",
"parkedMessageUri": "http://localhost:2113/streams/$persistentsubscription-newstream::competing_consumers_group1-parked",
"getMessagesUri": "http://localhost:2113/subscriptions/newstream/competing_consumers_group1/1",
"status": "Live",
"averageItemsPerSecond": 0.0,
"totalItemsProcessed": 0,
"lastProcessedEventNumber": -1,
"lastKnownEventNumber": 5,
"connectionCount": 0,
"totalInFlightMessages": 0
}
]
URI | Supported Content Types | Method |
---|
/subscriptions/{stream}/{subscription_name}/info | application/json | GET |
{
"links": [
{
"href": "http://localhost:2113/subscriptions/newstream/competing_consumers_group1/info",
"rel": "detail"
},
{
"href": "http://localhost:2113/subscriptions/newstream/competing_consumers_group1/replayParked",
"rel": "replayParked"
}
],
"config": {
"resolveLinktos": false,
"startFrom": 0,
"messageTimeoutMilliseconds": 10000,
"extraStatistics": false,
"maxRetryCount": 10,
"liveBufferSize": 500,
"bufferSize": 500,
"readBatchSize": 20,
"preferRoundRobin": true,
"checkPointAfterMilliseconds": 1000,
"minCheckPointCount": 10,
"maxCheckPointCount": 500,
"maxSubscriberCount": 10,
"namedConsumerStrategy": "RoundRobin"
},
"eventStreamId": "newstream",
"groupName": "competing_consumers_group1",
"status": "Live",
"averageItemsPerSecond": 0.0,
"parkedMessageUri": "http://localhost:2113/streams/$persistentsubscription-newstream::competing_consumers_group1-parked",
"getMessagesUri": "http://localhost:2113/subscriptions/newstream/competing_consumers_group1/1",
"totalItemsProcessed": 0,
"countSinceLastMeasurement": 0,
"lastProcessedEventNumber": -1,
"lastKnownEventNumber": 5,
"readBufferCount": 6,
"liveBufferCount": 5,
"retryBufferCount": 0,
"totalInFlightMessages": 0,
"connections": []
}