Skip to content
Developer Preview

ViewGapParams

view/gap params: push delivery dropped events, and this names the hole.

The bracket is deferred: it flushes at the subscription’s next ACCEPTED delivery, never at enqueue time, so next always names an event whose own delivery is proven. A run of consecutive undelivered events coalesces into one bracket keeping the FIRST range’s after. The gap rides the protected reserved queue, so no wire-interleaving order against neighbouring deliveries is promised — the cursors carry the semantics.

On receipt a client may take either sanctioned recovery: splice-fill — buffer live events at cursors >= next, page (after, next) forward, discard the overlap, splice — or re-anchor through the anchored read surface. The server requires neither, cannot distinguish clients by their choice, and holds no partial-fill state.

  • after
  • next
  • sessionId
Source

schema/msp/experimental/msp.schema.json#/types/ViewGapParams

{
"description": "`view/gap` params: push delivery dropped events,\nand this names the hole.\n\nThe bracket is deferred: it flushes at the subscription's next\nACCEPTED delivery, never at enqueue time, so `next` always names an event\nwhose own delivery is proven. A run of consecutive undelivered events\ncoalesces into one bracket keeping the FIRST range's `after`.\nThe gap rides the protected reserved queue, so no wire-interleaving order\nagainst neighbouring deliveries is promised — the cursors carry the\nsemantics.\n\nOn receipt a client may take either sanctioned recovery:\nsplice-fill — buffer live events at cursors >= `next`, page `(after,\nnext)` forward, discard the overlap, splice — or re-anchor through the\nanchored read surface. The server requires neither, cannot distinguish\nclients by their choice, and holds no partial-fill state.",
"properties": {
"after": {
"description": "The last cursor delivered before the hole — the exclusive lower bound\nof the undelivered range. An **opaque** view cursor: clients relay it,\nnever parse it.",
"type": "string"
},
"next": {
"description": "The first cursor delivered after the hole — the exclusive upper bound\nof the undelivered range, and the position delivery continues from. An\n**opaque** view cursor: clients relay it, never parse it.",
"type": "string"
},
"sessionId": {
"description": "The session whose subscription dropped events.",
"type": "string"
}
},
"required": [
"after",
"next",
"sessionId"
],
"type": "object"
}