gotelltherabbit

command module
v0.0.0-...-2cdf3b6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 13, 2022 License: MIT Imports: 5 Imported by: 0

README

GTTR; GO TELL THE RABBIT

About The Project

Go tell the rabbit (RabbitMQ) is a minimalist HTTP to RabbitMQ & RabbitMQ to HTTP bridge/middleware written in golang

  • No Auth
  • No message manipulation, checking, validation
  • Limited to synchronous actions only: HTTP 200 means message is delivered to RabbitMQ, ACK messages in RabbitMQ means HTTP was forwarded and resulted in 200.

Planned features

A. HTTP to RabbitMQ (Configurable in config/http2rabbit.json)
  • Listen to :8080 forward requests with pattern /exchange/{exchange_name} to RabbitMQ {exchange_name}
  • Ether whitelist exchanges user is allowed to post to or add "*" to allow sending to all exchanges

(No auth or https handling please use nginx proxy for if needed.)

B. RabbitMQ to HTTP (Configurable in config/rabbit2http.json)
  • Bind all exchange in config to 'gotelltherabbit' queue
  • Whenever a message is sent to any of defined exchanges in config, GTTR will forwarded to respective HTTP URL from config along with defined custom headers (eg: 'Auth: Bearer xyz')

Example usecase

  • You have an external microservice that's outside of your network, instead of exposing RabbitMQ you want to allow external microservice to send messages to your RabbitMQ server by just sending an HTTP request, then 'gotelltherabbit' will forward this message to RabbitMQ exchange, maybe you have a nginx proxy in the middle that also handles authentication.
  • You are bridging between 3rd party that uses only REST or Webhooks and your microservices that only use RabbitMQ
  • You are moving microservices projects one by one from RPI communication pattern to messaging communication pattern and need an interm solution
Built With
License

Released under the MIT License.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL