Sign inSign up

jderusse/http-broadcast

By jderusse

Updated over 6 years ago

A scalable and fault resilient HTTP Broadcaster

Image
1

10K+

jderusse/http-broadcast repository overview

HTTP Broadcast

A scalable and fault resilient HTTP Broadcaster built on top of mercure able to forward an HTTP request to several servers without 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 embeds 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 the varnish containers, the http-broadcast will take care to dispatch the same request to all varnish instances.

Benefits

  • No needs to maintain an index: each server is allowed to start and die without need 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-play once recovered.
  • Scalable: dealing with 1 or 2 000 servers is transparent for the client, it have a single request to perform.
  • Network secured: Servers don't have to be exposed to the client which is complex to setup when the servers are located in different region of the world.

Documentation

Contributing

See CONTRIBUTING.md.

Tag summary

Content type

Image

Digest

Size

3.4 MB

Last updated

over 6 years ago

docker pull jderusse/http-broadcast