gubernator-io / gubernator

High Performance Rate Limiting MicroService and Library - Developed at Mailgun
Apache License 2.0
103 stars 10 forks source link

V3.0 branch #8

Open thrawn01 opened 7 months ago

thrawn01 commented 7 months ago

Purpose

Prep Gubernator for a v3.0 release. This is a long running branch where we will merge V3 related feature once they are ready.

Removing GRPC Support

GRPC turned out to be more trouble than it was worth. Although GRPC has consistent semantics like flow control, request cancellation, and error handling, and decent performance. However, it is not without its issues.

Merged

TODO

See V3 Milestone -->

pete-woods commented 2 weeks ago

I made this PR #34 to try and help with my issue #32.

V3 seems like the right time for a breaking API change like this.

pete-woods commented 1 week ago

I dunno if you've considered it, but this cache lib https://github.com/dgraph-io/ristretto is really fast (I see you've been looking into other cache implementations for v3)

(I see now otter implementor claiming theirs is much better than even ristretto, though :) )

thrawn01 commented 1 week ago

@pete-woods Yes, I've tried to use ristretto for gubernator. It appears to be "eventual" in that if you write a value to the cache, then immediately retrieve it, it's possible the value you just wrote doesn't exist, as the write path hasn't synchronized with the underlying store. This occurs even though the API confirmed the write of the value as successful.

For this reason I used otter.