PyCon Lithuania 2024

Grokking Event-Driven Web App with Python
2024-04-04 , Room 228

Crafting scalable event-driven applications using Python can be a tricky endeavor, requiring careful consideration of various factors, from understanding synchronous and asynchronous network calls to tackling the Python Global Interpreter Lock (GIL) bottleneck and implementing robust auto-scaling strategies. This talk delves into advanced techniques and concepts for designing and implementing scalable event-driven applications with Python, empowering you to overcome these challenges effectively.


Challenges in Event-Driven Python:

  • Performance Pitfalls: Navigating the intricacies of asynchronous versus synchronous network protocols in Python can be a maze, with numerous available libraries offering varying approaches to efficient network communication.

  • Global Interpreter Lock (GIL): The GIL, a fundamental aspect of the Python runtime, restricts the execution of multiple CPU threads within a single Python process. This can hinder the ability of event-driven applications to handle simultaneous I/O and CPU-bound tasks efficiently.

  • Event Processing Reliability: In distributed environments with a high volume of incoming events, ensuring event processing without duplicates is crucial. Ensuring consistency across multiple event processing instances and maintaining data integrity requires careful design and implementation strategies.

What You'll Learn:

  • Python Synchronization Breakdown: Delve into the implementation of synchronous and asynchronous network protocols in Python, understanding the trade-offs and implications for event-driven applications.

  • Overcoming the GIL Barrier: Discover effective techniques and libraries that mitigate the limitations of the GIL, unleashing the full power of multi-core architectures for your event-driven applications.

  • Event Processing at Scale Mastery: Grasp the nuances of various event processing semantics, including at-least-once, at-most-once, and exactly-once message processing, and how to implement them in your applications.

  • Design Patterns for Failure Resilience: Uncover proven design patterns for handling failures in event-driven systems, ensuring resilience and robustness in the face of unexpected events.

  • Python Code Patterns for Scalability: Learn practical Python code patterns for building event-driven applications from scratch, incorporating scalability considerations from the get-go.

Target Audience:

  • Software Engineers
  • Web Developers

I am a seasoned software engineer with an international footprint in Forbes 500 companies as well as VC-funded scale-ups in Europe and North America.

I have spent most of my career till now building resilient data and machine learning platforms. Most of them fail, some of them success but all of them give me lessons to learn from.

One of my success is being part of the team who built Komodo Health’s critical AI-fueled data analytic platform to actually save people. Our platform reduces the burden of disease research and reduce the cost of drug manufacturing and delivery.

Previously at Jellysmack, I worked on the core infrastructure team who scaled the data platform for a company who went from greenfield to unicorn startup in 2 years.

A part from that, I am a birds’ lover, an animal enthusiast, a day dreamer and a mediocre Judo player.