GitHub Pages documentation
Docs for the Cell Offer Queue Service
A compact, GitHub-docs-style landing page for the queue service, backed by the live OpenAPI spec
from /v3/api-docs/v1 and designed to stay readable on GitHub Pages.
Cell-based offer ingestion
Accept driver offers per H3 cell, queue them with TTL and priority, then surface queue depth and counters.
At-least-once delivery
The push gateway keeps live messages until client ACK, then prunes them explicitly after receipt confirmation.
Metrics and health
Micrometer counters and gauges expose cell queue depth, push queue depth, and active session state.
Quick start
Run locally
mvn spring-boot:run
The service starts on port 8080 for HTTP and 9090 for gRPC.
Sample request
Create an offer
curl -s -X POST http://localhost:8080/cells/8928308280fffff/offers \
-H 'Content-Type: application/json' \
-d '{"driverId":"d-001","riderId":"r-001","priority":5,"ttlMillis":5000}'
Experiment probe
Inspect and evaluate live Citrus config
Current experiments
Probe a parameter
Run a probe to see the resolved value, active experiment, and assigned bucket.
Load simulation
Generate offer traffic against a chosen cell
Idle.
Run a load simulation to enqueue offers and inspect the resulting cell stats.
API reference
Live endpoint catalog
Architecture
Queue-to-push flow
- DispatchController accepts per-cell offers and forwards them into the queue manager.
- OfferFlusher drains due offers and hands them to the push client.
- PushServiceImpl stores messages, handles ACKs, and drains streams on readiness.
Design notes
Why this site exists
It gives the repository a lightweight GitHub Pages landing page with a docs.github.com-inspired layout, while keeping the generated OpenAPI document available as a downloadable asset.
Configuration
Important properties
| Property | Default | Description |
|---|---|---|
cell.offer.max-queue-size | 100 | Max offers per cell before eviction. |
push.gateway.dispatch-batch-size | 10 | Messages drained per on-ready event. |
push.gateway.heartbeat-interval-ms | 10000 | Server heartbeat cadence. |
push.gateway.default-ttl-ms | 30000 | Default push message TTL. |