1pkg / gohalt Goto Github PK
View Code? Open in Web Editor NEWGohalt ๐ฎโโ๐: Fast; Simple; Powerful; Go Throttler library
License: MIT License
Gohalt ๐ฎโโ๐: Fast; Simple; Powerful; Go Throttler library
License: MIT License
After #1 is implemented we could use marshaled state to do extra info logging. In this issue we need to add logger abstraction that could be accepted and called by existing runners. And add an implementation for logger.
Currently gohalt has only unit tests. Though overall coverage is great and all throttlers and tools around are covered 100% it still lacks coverage for enqueuers metrics monitors. It's nice to have small docker-compose file with full infrastructure RMQ, Kafka, Prom and small set of integration tests to cover basic happy scenarios for current enqueuers metrics monitors implementations
After #1 is implemented we could use marshaled state to store it in persistent storage and unmarshal it back to new throttler. In this issue we need to add storage abstraction that could be accepted and called by existing runners. And add couple of durable storage implementations.
After rethinking it seems that putting integrations with big list of third party libraries wasn't the good idea. Sure it simplifies integration usage as you need to get a single repo but also it introduces lots of unnecessary dependencies if only throttlers are needed. It is supposed to be bad practice to introduce unnecessary dependencies in places where they could be avoided. This way I believe gohalt needs to be split into two repos: original gohalt will contain all throttlers and surrounding tools and second one that will contain all thirdparty integrations mainly integrations.go
file.
In order to have durable storage, logging, meta exposure for all throttlers. Gohalt needs to have a way how to marshal and unmarshal inner states for all existing throttlers. This can be implemented as a pair of (MarshalBinary() (data []byte, err error)
, UnmarshalBinary(data []byte) error
) methods or something similar. Note that there might be additional difficulties with composite throttlers.
When trying new services, I usually look for an example, read it, and if I want to know more, work through it locally and see if I understand it and/or if stuff is missing.
This is a nice thing to have when a bazillion people are looking at your code or the first time (:-))
I think some of your tests might make a good example/tutorial
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.