Traffic Management
eMagiz throttling & rate limitingTraffic Management
eMagiz throttling & rate limitingSamenvatting
Het eMagiz platform is een platform waar gebruikers doormiddel van lowcode integraties kunnen ontwikkelen tussen systemen, zonder dat zij daar uitgebreide programmeerkennis van nodig hebben. Hiervoor heeft de gebruiker de keuze uit verschillende integratiepatronen.
De API-gateway en Event Streaming integratiepatronen hebben momenteel nog geen mogelijkheid om rate limiting en of throttling te configureren, terwijl daar wel vraag naar is vanuit gebruikers. Het doel van deze opdracht was een generiek prototype te realiseren waarmee throttling en of rate limiting op beide integratiepatronen geconfigureerd kan worden.
Uit het onderzoek bleek dat een combinatie van twee bestaande libraries het overgrote deel van de requirements oplossen. In overleg is de opdracht toen aangepast, en is de open-source Bucket4J-spring-boot-starter library aangepast, zodat rate limit configuraties dynamisch aangepast kunnen worden (in een gedistribueerde omgeving), zonder dat een herstart van de machine(s) nodig is.
Dit verslag behandelt de analyse van het probleem en de requirements, analyse van bestaande libraries, analyse van de bucket4j en bucket4j-spring-boot starter library, het opgestelde nieuwe ontwerp en de realisatie ervan.
De ontwikkelde code is op moment van schrijven gemerged in het open-source project en beschikbaar voor publiek gebruik vanaf versie 0.10.3