Why Zapier Doesn't Use Gevent (Yet)

ZAPIer, som hanterar nästan 500 API-förfrågningar per sekund, upplever betydande väntetider och ineffektiv CPU-användning, vilket ledde till en undersökning av Gevent för att förbättra resursutnyttjandet. De undersökte Gevent, ett Python-bibliotek för kooperativ multitasking, som skulle kunna öka arbetarutnyttjandet och minska RAM-användningen genom att låta en enskild Python-process utföra flera uppgifter samtidigt via lättviktiga greenlets. Trots potentiella fördelar stötte ZAPIer på flera problem med Gevent, inklusive bristande stöd från tredjepartsbibliotek, krav på "greenlet-säker" kod, ökad komplexitet med anslutningspooler och att CPU-intensiva operationer kunde blockera hela processen. Efter att ha implementerat Gevent lyckades de öka arbetarutnyttjandet med 20% och minska RAM-användningen, men detta kom på bekostnad av en cirka 50% långsammare exekveringstid för uppgifter. På grund av den ökade kodkomplexiteten och den betydande prestandaförsämringen beslutade ZAPIer att inte byta till Gevent just nu, men ser det som ett attraktivt alternativ i fRAMtiden när de övergår till mikrotjänster.