This repository was archived by the owner on Mar 6, 2026. It is now read-only.
chore(deps): pin dependencies#24
Open
EpochBoy wants to merge 6 commits into
Open
Conversation
Added:
- github.com/rabbitmq/amqp091-go client library
- /rabbitmq/status endpoint - connection status + consumed messages
- /rabbitmq/publish endpoint - publish messages (GET or POST)
- Background consumer goroutine for demo queue
- Prometheus metrics: epochcloud_rabbitmq_{messages_published,messages_consumed,publish_errors,connected}_total
- HTML template: RabbitMQ Demo section
Features:
- Graceful handling when RabbitMQ not configured (optional)
- Auto-ack consumer with last 10 messages stored
- Trace ID correlation in messages
- OpenTelemetry spans for all RabbitMQ operations
Env vars (optional):
- RABBITMQ_HOST, RABBITMQ_PORT, RABBITMQ_USERNAME
- RABBITMQ_PASSWORD, RABBITMQ_VHOST, RABBITMQ_URI, RABBITMQ_QUEUE
The app now runs a background connection manager that: - Retries connection with exponential backoff (1s to 30s) - Automatically reconnects when connection is lost - Uses NotifyClose to detect connection drops - Non-blocking startup (app starts immediately, connects when RabbitMQ is ready) This makes the app resilient to RabbitMQ being unavailable at startup.
When CONSUMER_MODE=true: - Only consumes messages from RabbitMQ queue - HTTP server runs minimal endpoints (/health, /metrics only) - No /rabbitmq/publish or other producer endpoints This enables: - Separate consumer pods scaled by KEDA based on queue depth - Producer pods that only publish (don't consume own messages) - True microservices pub/sub pattern demonstration
Valkey may not be ready immediately during pod startup, especially with Linkerd mTLS. Added retry logic (5 attempts, exponential backoff 1s→16s) to handle transient connection failures.
ed9e41b to
b878932
Compare
There was a problem hiding this comment.
Pull request overview
This PR pins Docker base image dependencies by adding SHA256 digests to ensure reproducible builds and enhance supply chain security. Renovate bot has automatically generated this change to lock the golang:1.24-alpine and alpine:3.21 images to specific versions.
Changes:
- Added SHA256 digest pinning to the golang:1.24-alpine builder image
- Added SHA256 digest pinning to the alpine:3.21 runtime image
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
b878932 to
7ea8b23
Compare
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
This PR contains the following updates:
c3f8e736b597b1Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Renovate Bot.