[{"data":1,"prerenderedAt":176},["ShallowReactive",2],{"project-38643303":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":14,"rank_in_year":15,"shown_in_year":16,"top":17,"tier":18,"category":19,"subcategory":20,"format":21,"keywords":22,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":32,"aspects":33,"strip":36,"post_text":28,"what":38,"said":74,"maker_in_thread":117,"shape":124,"grid":126,"attempts":137,"same_week":138,"maker_shows":168,"maker_hidden":169,"reader_version":170,"card":171},"38643303","RateLimitAPI","API for rate limiting in distributed environments","title","Show HN: RateLimitAPI – API for rate limiting in distributed environments","https:\u002F\u002Fwww.ratelimitapi.com\u002F","ratelimitapi.com","flurly",1702571951,2023,5,2837,3109,92,"shown","infrastructure","rate limiting api","api",[23,24,25,26],"rate limiting","distributed systems","api rate limit","distributed counting","quiet",null,{"positive":30,"neutral":30,"mixed":31,"critical":31},0,1,2,{"design":34,"idea":35},{"positive":30,"critical":30},{"positive":30,"critical":31},[30,37,30,31,30],3,{"problem":39,"audience":46,"pricing":51,"motivation":55,"time_to_build":28,"stack":59,"openness":72,"stage":73,"team_size":72},{"value":40,"source":41,"evidence":42},"Maintaining consistent API rate limits across multiple servers in distributed systems","maker",[43],{"id":44,"by":11,"text":45},"38643336","Hey HN community! I've been working on something I think you'll find pretty neat: a Rate Limit API. It's a tool I built with the goal of tackling the challenges of API rate…",{"value":47,"source":48,"evidence":49},"Developers integrating rate limiting into distributed systems","inferred",[50],{"id":44,"by":11,"text":45},{"value":52,"source":41,"evidence":53},"Free for up to 1 million requests per month, with paid plans for higher volumes",[54],{"id":44,"by":11,"text":45},{"value":56,"source":41,"evidence":57},"Make rate limiting simple to integrate, like Stripe did for payments",[58],{"id":44,"by":11,"text":45},[60,64,68],{"value":61,"source":41,"evidence":62},"JavaScript",[63],{"id":44,"by":11,"text":45},{"value":65,"source":41,"evidence":66},"Python",[67],{"id":44,"by":11,"text":45},{"value":69,"source":41,"evidence":70},"Ruby",[71],{"id":44,"by":11,"text":45},"unknown","launched",{"praise":75,"objections":84,"requests":99,"questions":105,"alternatives":112},[76],{"value":77,"source":78,"evidence":79},"Landing page and simple design","commenter",[80],{"id":81,"by":82,"text":83},"38644233","anze3db","I like the simplicity of the landing page! For me personally, the tool would be more useful if I could adjust the duration and the rate limit count without redeploying my code,…",[85,89,93],{"value":86,"source":78,"evidence":87},"Rate limit duration and count cannot be changed without redeploying code",[88],{"id":81,"by":82,"text":83},{"value":90,"source":78,"evidence":91},"Would rather run their own Redis than use a third-party service",[92],{"id":81,"by":82,"text":83},{"value":94,"source":78,"evidence":95},"Pub\u002Fsub users likely already have event counting, so the service is less needed",[96],{"id":97,"by":82,"text":98},"38644573","That makes sense if you already have a pub\u002Fsub service running. But if you have a pub\u002Fsub service running, you probably also have a service that can count events so you won't…",[100],{"value":101,"source":78,"evidence":102},"Configure rate limits without redeploying",[103,104],{"id":81,"by":82,"text":83},{"id":97,"by":82,"text":98},[106],{"value":107,"source":48,"evidence":108},"Whether users will need to change limits often",[109],{"id":110,"by":11,"text":111},"38647227","Touche! I guess we'll see if it's an issue in practice. My intuition is people won't change durations that frequently in practice. eg. OpenAI has a limit of 40 messages per 3…",[113],{"value":114,"source":78,"evidence":115},"Self-hosted Redis",[116],{"id":81,"by":82,"text":83},{"comments":37,"answered":30,"key":118},[119,120,123],{"id":44,"text":45},{"id":121,"text":122},"38644345","Thank you! I just pushed an update to the website to use the params parameter. I'd love to make this more ergonomic for you. I'm used to using configuration propagation…",{"id":110,"text":111},{"commenters":32,"max_depth":14,"maker_replies":37,"first_comment_mins":32,"lifespan_hours":125},4,[127,129,131,133,135],[44,30,30,128,11,31],"project\u002Fneutral\u002Fidea",[81,30,37,130,82,30],"project\u002Fmixed\u002Fdesign",[121,30,30,132,11,31],"project\u002Fneutral\u002Fdesign",[97,30,31,134,82,30],"project\u002Fcritical\u002Fidea",[110,30,30,136,11,31],"commenter\u002Fneutral\u002Fnone",[],[139,144,149,154,159,164],{"id":140,"name":141,"points":142,"category":143},"38706299","moddio2",318,"games",{"id":145,"name":146,"points":147,"category":148},"38647938","Airdraw",269,"creative",{"id":150,"name":151,"points":152,"category":153},"38650570","go-sqlite3",234,"languages",{"id":155,"name":156,"points":157,"category":158},"38679453","Microagents",221,"ai",{"id":160,"name":161,"points":162,"category":163},"38673973","Google Earth as glTF",177,"dev_tools",{"id":165,"name":166,"points":167,"category":158},"38705535","AI Video Search Engine (avse)",145,6,false,"v2",{"id":172,"name":5,"line":6,"ai":169,"cat":19,"year":13,"points":14,"comments":14,"rec":27,"s":28,"top":17,"kw":173,"maker":11,"domain":10,"tier":18,"attempts":30,"strip":174,"url":9,"mix":175,"praise":77,"objection":86,"sub":20},38643303,[23,24,25,26],"03010",[30,30,31,31],1793991080129]