http-broadcast

command module
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Jan 27, 2020 License: MIT Imports: 7 Imported by: 0

README

HTTP Broadcast

A scalable and fault resilient HTTP Broadcaster built on top of mercure able to forward an HTTP request to several servers without the need to maintain a registry.

This project has been initialized in order to invalidate a cluster of docker varnish servers.

Description

Each HTTP request sent to a listening http-broadcast is pushed into a mercure HUB, then dispatched to all listening http-broadcast who'll replay the same request.

Schema

Use cases

Example of usage: Send PURGE/BAN requests to a cluster of Varnish containers.

The solution will be to embed a http-broadcast binary alongside each Varnish instance (One could use the Inter-container network communication provided by Kubernetes Pods). By sending a single request to one varnish container, the http-broadcast will take care to dispatch the same request to all varnish instances.

Benefits

  • No need to maintain an index: each server is allowed to start and die without to be registered somewhere
  • Fault tolerant: if a server is temporary unreachable (network issue for instance), messages won't be lost: all missed messages will be re-played once recovered.
  • Scalable: dealing with 1 or 2 000 servers is transparent for the client, it has a single request to perform.
  • Network secured: Servers don't have to be exposed to the client which is complex to set up when the servers are located in different region of the world.

Documentation

Contributing

See CONTRIBUTING.md.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

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