Skip to content

sreerag-rajan/queue-manager

Repository files navigation

Queue Manager Service

The queue manager is a Go backend responsible for provisioning and maintaining messaging infrastructure for a microservice ecosystem. It reconciles the desired topology defined in PostgreSQL with the actual state of the queue provider (initially RabbitMQ) and exposes operational endpoints for observability and manual synchronization.

Key Responsibilities

  • Reconcile exchanges, queues, and bindings at startup and on demand.
  • Continuously verify messaging resources through scheduled health checks.
  • Provide read-only access to expected topology definitions sourced from the database.
  • Expose HTTP endpoints for health, readiness, and reconciliation insights.

Documentation Map

Runtime Behavior

  1. Load expected state from PostgreSQL.
  2. Connect to RabbitMQ via the provider abstraction.
  3. Validate existing exchanges, queues, and bindings; create or remove resources to align with expectations.
  4. Serve HTTP endpoints for health, readiness, and topology inspection.
  5. Periodically re-run reconciliation to maintain alignment.

Data Ownership

  • PostgreSQL migrations are the sole mechanism for altering topology definitions.
  • The repository layer exposes read-only accessors; runtime components never mutate database records.
  • Health checks and status verification rely on real-time provider queries rather than cached data.

Next Steps

  • Implement the provider interface and repository contracts.
  • Wire Gin controllers to expose the documented endpoints.
  • Configure continuous reconciliation intervals and logging/metrics integration.

About

A Go-based queue management service that provisions and maintains messaging infrastructure for microservices. Automatically reconciles desired topology (PostgreSQL) with actual state (RabbitMQ), providing declarative queue/exchange/binding management with health checks and manual synchronization endpoints.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages