Giter Club home page Giter Club logo

distribuerad's People

Contributors

mxzinke avatar

Stargazers

 avatar

Watchers

 avatar  avatar

distribuerad's Issues

Add SDK for Golang & Node.js

To give the users of the program an easy-to-use integration, I would want to offer an SDK for Golang and Node.js.
Therefore I would want to implement an interface implemented by gRPC (for faster interaction).

Node.js is needed more, because it's likely to be used by more people.

Communication description will follow in this thread.

Rewrite README

For the first viewer it seams to be just once another simpleMQ, but actually we do some different stuff with the delayed messages and jobs.

Add support for TTL

Adding a TTL to events (and jobs), with an easy definition and a default value of 10min.

A search, when the queue of a channel is requests, should clean up the events. Also a background job should do it on every channel (like every 5min).

Idea: Scaling horizontally

To scale a both 2 mio./sec. new events, plus handling the lifecycle of each event is not easy to do.

In a first solution, we could create some read-write replicas of the service to effectively scale the service. These read-write replicas would need to copy over every change transaction to the master, so that in the end the throughput is not that much higher.

The second solution, which comes to my mind, could be a read replica, but it includes the same trouble like the first solution with the read-write replicas. Also every transaction has to be transferred to the master node. And because the service is more write intensive (add new events + acquire events), it has only a small impact.

For now I don't have any greater idea than the things above. Maybe someone could help me out with this.

Add Cron-Jobs support

Make it possible that an event is recurring in a cron-job manner.

It should be possible to define intervals and by normal cron-job definitions.

Timed-out Events get still deleted, when they are acquired

The event lifecycle does not implement currently the case that the event is eventually already expired and but still some service is working on it (had acquired a lock).

For example:

  1. Creating an event with TTL of 10min
  2. Immediately acquire a lock on it with a TTL of 1h (long taking process)

I don't know if this case really comes to speech in real world, because you usually make then just a higher TTL on the event, but I just want to notice it here. Maybe it has to be included in the documentation.

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.