<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" id="owaParaStyle">P {margin-top:0;margin-bottom:0;}</style>
</head>
<body fpstyle="1" ocsi="0">
<div style="direction: ltr;font-family: Arial;color: #000000;font-size: 10pt;">Hi Frank,<br>
<div><br>
<div style="font-family:Tahoma; font-size:13px">
<div style="font-family:Tahoma; font-size:13px"><font size="2" face="Arial">I've implemented a simple form of rate limiting in this [1] little project (module http2smtp_rate). The module is probably not what you need but the idea behind it, could be used as
 a starting point. The basic idea is the following:</font></div>
<div style="font-family:Tahoma; font-size:13px"><font size="2" face="Arial"><br>
</font></div>
<div style="font-family:Tahoma; font-size:13px"><font size="2" face="Arial">Everytime a request comes in, the request process makes a gen_server call to this server (you could also spawn the limiter processes per source IP address for sharding). This request
 will increment and return a counter (specific for this IP address). If the counter exceeds the limit, the request gets terminated immediately. The server has an internal timer that fires once per desired interval and resets all counters.<br>
</font></div>
</div>
</div>
<div><br>
</div>
<div>Regards</div>
<div>Tobias</div>
<div><br>
</div>
<div>[1] https://github.com/lindenbaum/http2smtp</div>
<div><br>
</div>
</div>
</body>
</html>