Navigating the limitations of Python’s concurrency model in web services
Tarek Mehrez
A more detailed description
In a world dominated by cloud-based solutions and distributed systems, it’s easy to ignore some of the details that come with the technologies we use, especially when they become somewhat obsolete and taken over by other layers in the stack. For example one might argue why should I care about the WSGI approach to multiprocessing if Kubernetes is taking care of horizontal scaling anyways. But if anything those details are as important in achieving transparency and clarity over how our systems scale, interact and what their limitations are. In this talk we will aim at unveiling some of the details of the runtimes behind python web frameworks. First starting off with a comparison between ASGIs and WSGIS. Then we will use FastAPI as an example to discuss its approach to concurrency with Starlette being the underlying ASGI. Then finally get into some other alternatives to asynchronous programming by discussing how is FastAPI compared to Tornado.
Goal of the talk
Giving the audience the clarity of answer these questions
- How do web frameworks navigate limitations of the Python concurrency model?
- Which web framework shall I use for my use case? What are the tradeoffs?
- How to scale my web service vertically with zero assumptions on where the service is running?
- What is the safest way of running my service without shooting myself in the foot?
Agenda
- Flask already works, why should I care about more than that?
- A deep dive into WSGIs and ASGIs
- Getting into some of the inner workings of FastAPI and how it interacts with Starlette
- Other approaches to asynchronous programming (e.g. with Tornado)
Tarek Mehrez
Affiliation: Klarna
Tarek’s diverse experiences stem from a grounded background in Machine Learning research to an elaborately arrayed industry experience in Fintech
Regarded as a jack of all trades, he has previously utilised his ML skillset in various NLP applications, before a gradual shift towards distributed systems and data engineering in the banking industry.
Slowly but surely, his appetite translated into a fresh move towards tech leadership, building teams from the bottom up in the areas of investment and payments processing.
Currently based in Amsterdam, Tarek is currently running the realtime business monitoring team at Klarna, digging deeper into the topics streaming processing and serverless computing.
During his free time, he likes to fiddle around with analog synthesizers, delve into the intricacies of filter coffee, or discover the wonders of street photography.
visit the speaker at: Github