Code Monkey home page Code Monkey logo

dispatchd's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

dispatchd's Issues

Support more than one virtual host

In order to implement this the server needs to be broken up such that a connection can be associated with an instance of Server after selecting a virtual host

HTTP/2 Protocol Support

HTTP/2 is a framed binary protocol, so it makes a lot of sense to allow queue operations via it. The easiest way to do this is probably grpc, so that should be the first option looked at.

Functional PLAIN auth

Right now the plain auth user/password are ignored. The server should be able to be configured to have users and passwords which are allowed to connect

AMQP Router/Proxy for Simple Clustering

The router should be able to connect to an upstream AMQP server and forward messages back and forth. It should understand the protocol well enough that it can make intelligent decisions about where to send requests.

In particular, it would be great to be able to declare a queue as being on all downstream hosts and then to publish/consume messages evenly between them. The server would need to look at the client properties and exchange/queue/binding declaration properties to decide where the commands should go

Coalesce persistent writes

We should batch writes for efficiency. Each write is a stand alone boltdb transaction right now which has to be more expensive than doing everything at once,

If messages are delivered/acked, do not persist

After #6 is resolved and we aren't blocking on persistent writes we should short-circuit and not write anything to disk which has been acked or (if auto-acking) fully sent over the network. With an appropriate coalescing system we might never write to disk when acking is off and the system is not backlogged

TLS Support

It should be possible to connect securely using TLS

Add memory limits

The server should have a config option to specify a memory limit and if the go process goes over that limit it should panic. Future changes can add better strategies for dealing with the problem, but without a limit they can't be implemented

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.