<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Best Practices on Uday K</title><link>https://uday.dev/tags/best-practices/</link><description>Recent content in Best Practices on Uday K</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 20 Jul 2023 11:57:16 -0400</lastBuildDate><atom:link href="https://uday.dev/tags/best-practices/index.xml" rel="self" type="application/rss+xml"/><item><title>Rate Limiter in API Design</title><link>https://uday.dev/posts/rate-limiter-api-design/</link><pubDate>Thu, 20 Jul 2023 11:57:16 -0400</pubDate><guid>https://uday.dev/posts/rate-limiter-api-design/</guid><description>&lt;p&gt;A rate limiter is a mechanism used to control the rate at which certain operations or requests are allowed to be processed by a system or an API. It helps prevent abuse, protect system resources, and ensure fair usage by limiting the number of requests or actions that can be performed within a specific timeframe. And Richard Schneeman has put it nicely in his &lt;a href="https://twitter.com/schneems/status/1138899094137651200?s=20"&gt;tweet&lt;/a&gt; where he said:&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;If you provide an API client that doesn&amp;rsquo;t include rate limiting, you don&amp;rsquo;t really have an API client. You&amp;rsquo;ve got an exception generator with a remote timer.&lt;/p&gt;</description></item><item><title>Simplifying Globalization: The Power of Standalone Localization Repositories</title><link>https://uday.dev/posts/localization/</link><pubDate>Sun, 21 Feb 2021 16:14:59 -0400</pubDate><guid>https://uday.dev/posts/localization/</guid><description>&lt;p&gt;In today&amp;rsquo;s globalized world, catering to a diverse audience is essential for businesses. To effectively serve localized content to users across the globe, it&amp;rsquo;s crucial to streamline the localization process. This blog post explores a practical solution by pulling out localization files from your project and placing them in a standalone repository. We&amp;rsquo;ll focus on using Rails project conventions for simplicity reasons.&lt;/p&gt;&#10;&lt;h2 id="motivation"&gt;Motivation&lt;/h2&gt;&#10;&lt;p&gt;Leading a significant feature in a shared code base often leads to the creation of a Long Standing Changelist (LSC). In such cases, translation files tend to be rapidly evolving due to other team members working on smaller fixes and features. This can become a major headache when merging changes with the upstream codebase.&lt;/p&gt;</description></item></channel></rss>