decision-labs / fcm

Ruby bindings to Firebase Cloud Messaging (FCM) for Android, iOS or Web
MIT License
517 stars 154 forks source link

Exponential Backoff #77

Closed rushim1 closed 3 years ago

rushim1 commented 4 years ago

Is it really necessary to build exponential backoff to our server logic?

How frequent will we get this error? At what amount of rps will we hit this error?

How should we manage sync of exponential backoff time in huge distributed workers(100-1000) environments which pull notification jobs from queue.

sabman commented 4 years ago

@rushim1 this doesn't come under the scope of this library. We have tried to keep this library simple so we can easily adapt to changes in FCM Spec.

However, to answer what you are asking for requires more information about your architecture.

Can you provide details how you are distributing jobs and if they can share state? If so can you access that state in the code that's using the fcm API?

rushim1 commented 4 years ago

we use delayed job which has access to our database. Each worker just pulls the jobs from the queue and run them, and other jobs(non-notification) will also be present in the queue.

sabman commented 3 years ago

@rushim1 if you managed to find a solution to this please do share it. I'm closing it for now.

rushim1 commented 3 years ago

I have not done much reasearch regarding this. As our scale was not so huge, I maintained a single record in db which stores the time and wrote exponential backoff using that.