feat(mapache): add live signal-streaming service#74
Merged
Conversation
mapache v3.5.0 extracted the WebSocket / SSE signal-streaming endpoints out of gr26 into a new `live` service (Mapache commits 1eeafd2, 22102fa). Live subscribes to the `query/live/#` republish topic *without* the shared-sub prefix, so every replica sees every signal — which closes the dashboard partial-visibility gap we hit while gr26 was on shared subscriptions with a local-only Hub. This PR brings the service into the cluster: - new live.yaml: Deployment + Service on :7015, replicas=2 with the same minDomains=2 / maxSkew=1 topology spread pattern as the other mapache services. env wires MQTT_USER=mapache + MQTT_PASSWORD from mapache-secrets, CACHE_WINDOW_SEC=60. - kustomization.yaml: live.yaml in resources, live image pinned at 3.5.0 (deploy.yml's awk already includes `live` in its rewrite pattern, so future releases auto-bump alongside the other services). - configmap-kerbecs.yaml: new `live` upstream + three routes — `live-ws` (passthrough), `live-sse` (passthrough), `live` catch-all (default envelope for /live/ping and /live/stats). Routes are ordered before the dashboard catch-all so they match first.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
mapache v3.5.0 extracted the WebSocket / SSE signal-streaming endpoints out of gr26 into a new `live` service (Mapache commits `1eeafd2`, `22102fa`). Live subscribes to the `query/live/#` republish topic without the shared-sub prefix, so every replica sees every signal — which closes the dashboard partial-visibility gap we hit while gr26 was on shared subscriptions with a local-only Hub.
What's in the PR
Endpoints after this lands
Cache caveat
The `CACHE_WINDOW_SEC=60` ring buffer is per-pod, in-memory. A pod restart drops its cache, and clients that reconnect onto another pod see only that pod's cache for the first 60s. Acceptable for the dashboard use case; promotable to Redis if we ever need cross-pod consistency.
Test plan