An Interest In:
Web News this Week
- March 20, 2024
- March 19, 2024
- March 18, 2024
- March 17, 2024
- March 16, 2024
- March 15, 2024
- March 14, 2024
Eventually consistency and cache
What is it?
Eventually consistency is a fancy name of doing something and only expecting the changed state after a while. And there is a guarantee that you will eventually get the expected state. Hence, consistency.
But that wont work well with caching. And I had to deal with that recently when working with WhatsApp API.
When querying for a list of message templates from WhatsApp, well cache the response for use later. Its because message templates are not something that changes so frequently. Just cache it to reduce unnecessary API calls.
After creating a template, we wont see it for a while if we call the listing API. Thats because of, you guessed it, eventually consistency.
Things will get worse because these responded message templates will be cached for a few minutes. Therefore, we wont see the newly created template soon, even though it may be available on the WhatsApp API earlier.
How to deal with it?
First, lets simply ignore the cache for, like 1 minute, after creating a new template. That would be enough for the WhatsApp API to return the newly created template.
The next improvement would be reducing the cache expiration time to, like 5s, in the first 1 minute. Lets call that the catching-up duration. After that, use the original expiration time.
Another improvement would be verifying that the new template is available in the response and starting caching at that point. That would be a bit more complex, as we need to store the template id and more code to extract it from the response.
Finally, while that new template is not available, we can still construct it and manually inject it into our own response.
Recap
In the end, that works well. We can have both cache and eventually consistency playing together, minimizing the waiting time and the number of requests to an external platform!
Thanks for reading! Would love to hear your thoughts by leaving a comment.
Original Link: https://dev.to/olvrng/eventually-consistency-and-cache-1aki
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To