Cian Butler
๐ค SpeakerAppearances Over Time
Podcast Appearances
This was really cool for me because I was like, cool, here's a project that does exactly what I wanted to do.
And I started reading the code and I learned that the concept of request cancellation, the thing I was doing all of this to, was not possible in uWhiskey at all.
Like there was never going to be a chance of doing it in Whiskey because it's just not supported by a protocol.
Gradient only supports it if you're using ASGI, which is an async version of SGI.
That's more like a traditional event loop style of async await.
Yeah, it's exactly the same kind of design.
And you get to reuse all that kind of code that's designed for those IOU loops.
But we sat down and we'd already started looking at it.
So it saved me a lot of time in that concept of prior art, walking down paths that we could have lost so much time if I had spent working on it.
But it did have a feature that I loved.
And that was it had a built-in queue for managing the requests.
So right now, to this day and at the time, we were running HAProxy in front of uWhiskey to allow us to scale.
HAProxy was effectively doing the queuing for us, managing work in a queue, and then handing it off to a uWhiskey process that would hand it off to a Django process and do the request.
And for reasons that elude me of why an engineer decided to do this, we also are running an Nginx in front of the HAProxy to do very light routing control and optimizations.
Nothing that couldn't have been done in HAProxy, but it was just being done in Nginx for some reason.
And there was a ticket on a backlog for years of merge HAProxy and NGINX together and just have HAProxy.
You're probably right.
Nginx is a really nice config.