You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A queue isn't its own model. It's an ImmutableEdge table with a queue/v1 marker + numPartitions in the table comment, decoded at runtime (QueueMetadataService, QueueService.getNumPartitions). The hierarchy — Edge / ImmutableEdge / MultiEdge / Vertex — has no Queue.
So queue capability is invisible on the descriptor. On the unified collection surface (#470), clients can't tell which sub-resources a collection exposes.
Decision
Make Queue a first-class model (a collection kind). Add it to the type hierarchy; the descriptor declares kind=Queue. The queue shape (partition/seq/value, numPartitions) becomes the model definition.
Implementation and storage reuse ImmutableEdge as-is — enqueue/poll already run over it, so no engine change. The comment marker stays as storage encoding; only the model layer becomes explicit.
Data face is messages only; /edges stays hidden as an implementation detail.
Context
A queue isn't its own model. It's an
ImmutableEdgetable with aqueue/v1marker +numPartitionsin the table comment, decoded at runtime (QueueMetadataService,QueueService.getNumPartitions). The hierarchy — Edge / ImmutableEdge / MultiEdge / Vertex — has no Queue.So queue capability is invisible on the descriptor. On the unified collection surface (#470), clients can't tell which sub-resources a collection exposes.
Decision
Make Queue a first-class model (a collection kind). Add it to the type hierarchy; the descriptor declares
kind=Queue. The queue shape (partition/seq/value,numPartitions) becomes the model definition.ImmutableEdgeas-is — enqueue/poll already run over it, so no engine change. The comment marker stays as storage encoding; only the model layer becomes explicit.messagesonly;/edgesstays hidden as an implementation detail.Consequences
kind=Queueon the descriptor tells clients/messages,partitions, andpollexist — closes the Settle v3 vocabulary ondatabase/collection(tablereserved for HBase) #470 discoverability gap.ImmutableEdge.ImmutableEdgecode relationship (delegation vs subtype), whether to fully hide/edges.