gubernator-io / gubernator

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

Rename global/non-global to async and sync #20

Open thrawn01 opened 1 month ago

thrawn01 commented 1 month ago

Purpose

Global can be a confusing term and doesn't convey what it actually does. Change gubernator to use async and sync instead of Global behavior. Also, we should default to async behavior by default.

dimaqq commented 2 weeks ago

+1 on global/async being the default.

Perhaps if the default is reasonable, the naming is less of an issue.

Personally, I don't feel that sync/async labels are good user-facing or operator-facing description, it feels more like an implementation detail. I wonder if some other terminology could be borrowed, e.g. write-through/write-behind, or immediate/batched?

thrawn01 commented 2 weeks ago

Hurm, the more I think about it, we are really talking about write concerns.

I asked ChatGPT about it.

Renaming the "global" behavior in your rate limiting service, Gubernator, to better convey its functionality can improve clarity and understanding for users. Here are a few suggestions based on the description of how it works:

These suggestions aim to provide a more accurate and descriptive name for the "global" behavior in your rate limiting service. 😆

Not too bad, any thoughts @Baliedge ?

Baliedge commented 2 weeks ago

I'm partial to EventuallyConsistent because it does exactly what it sounds like. And more descriptive than simply Async. The AGI description fits, too.

Then for default behavior, you will need the converse term. Perhaps FullyConsistent?

dimaqq commented 2 weeks ago

My preference would be for "Eventually Consistent" and "Synchronous".

Both are clear and well-established jargon in databases and distributed systems.