syntax = "proto3"; package qpq.v1; // Delivery service: enqueue, fetch, peek, ack, batch (6 methods). // Method IDs: 200-205. message Envelope { uint64 seq = 1; bytes data = 2; } message EnqueueRequest { bytes recipient_key = 1; bytes payload = 2; bytes channel_id = 3; uint32 ttl_secs = 4; } message EnqueueResponse { uint64 seq = 1; bytes delivery_proof = 2; } message FetchRequest { bytes recipient_key = 1; bytes channel_id = 2; uint32 limit = 3; } message FetchResponse { repeated Envelope payloads = 1; } message FetchWaitRequest { bytes recipient_key = 1; bytes channel_id = 2; uint64 timeout_ms = 3; uint32 limit = 4; } message FetchWaitResponse { repeated Envelope payloads = 1; } message PeekRequest { bytes recipient_key = 1; bytes channel_id = 2; uint32 limit = 3; } message PeekResponse { repeated Envelope payloads = 1; } message AckRequest { bytes recipient_key = 1; bytes channel_id = 2; uint64 seq_up_to = 3; } message AckResponse {} message BatchEnqueueRequest { repeated bytes recipient_keys = 1; bytes payload = 2; bytes channel_id = 3; uint32 ttl_secs = 4; } message BatchEnqueueResponse { repeated uint64 seqs = 1; }