{"podcast":{"title":"Elixir Wizards","slug":"elixir-wizards","podcast_index_feed_id":674321,"rss_url":"https://feeds.fireside.fm/smartlogic/rss","website_url":"https://smartlogic.fireside.fm","image_url":"https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/0/03a50f66-dc5e-4da4-ab6e-31895b6d4c9e/cover.jpg?v=3","author":"SmartLogic LLC","episode_count":201,"summary":"Elixir Wizards is an interview-style podcast from SmartLogic featuring conversations with developers, engineers, and industry leaders about the Elixir programming language and the broader software development landscape. Each episode explores how modern systems are built, from distributed architectures and infrastructure to developer workflows, security, and emerging technologies like AI. While rooted in the Elixir ecosystem, the show often branches out to compare approaches across languages, platforms, and disciplines. Whether you’re working in Elixir or just interested in how software is evolving, Elixir Wizards offers practical insights and thoughtful perspectives from the people building today’s systems.","last_synced_at":null,"page_url":"https://stenobird.com/podcast/elixir-wizards"},"episode":{"title":"Python in Elixir Apps with Victor Björklund","slug":"python-in-elixir-apps-with-victor-bj-rklund","published_at":"2025-07-31T10:30:00+00:00","page_url":"https://stenobird.com/podcast/elixir-wizards/python-in-elixir-apps-with-victor-bj-rklund","show_page_url":"https://stenobird.com/podcast/elixir-wizards","url":"https://smartlogic.fireside.fm/s14-e10-python-in-elixir-apps","audio_url":"https://aphid.fireside.fm/d/1437767933/03a50f66-dc5e-4da4-ab6e-31895b6d4c9e/cf1b7aa3-a808-4496-ae0d-164677fde998.mp3","summary":"Evaluate the trade-offs between different integration patterns for running Python logic within Elixir applications. Learn how to manage the Python Global Interpreter Lock (GIL) and implement fault-tolerant communication using tools like ErlPort and Venomous.","meta_description":"Explore Python and Elixir interoperability: comparing HTTP APIs, ErlPort, and PythonX while managing the GIL and deployment challenges.","key_points":["Main idea: Choose integration methods based on coupling needs, ranging from low-coupling HTTP APIs to high-performance embedded runtimes","Practical takeaway: Use process pools (like Poolboy) with ErlPort to mitigate the overhead of starting Python processes and manage the GIL","Failure mode: Avoid unhandled exceptions in Python by implementing try-catch logic in Python and pattern matching on results in Elixir","Practical takeaway: For low-frequency tasks like monthly reporting, simple ports are a low-risk entry point for using Python's ecosystem","Deployment strategy: Consider the complexities of packaging Python dependencies alongside Elixir Mix releases for production stability"],"chapters":[{"start_ms":60000,"title":"Introduction and Background","summary":"Victor Björklund discusses his journey from C and Python to the functional paradigm of Elixir."},{"start_ms":210000,"title":"The Landscape of Python-Elixir Interop","summary":"An overview of integration strategies, from decoupled HTTP APIs to embedded runtimes like PythonX."},{"start_ms":370000,"title":"Managing the Global Interpreter Lock","summary":"Strategies for handling Python's GIL and using process pools to maintain concurrency in Elixir."},{"start_ms":510000,"title":"Structuring Integration for Success","summary":"How to design communication patterns and manage pools of ports for efficient resource usage."},{"start_ms":810000,"title":"Leveraging the Python Ecosystem","summary":"When to reach for Python: using mature libraries like Scrapy when Elixir-native alternatives don't exist."},{"start_ms":975000,"title":"Error Handling and Fault Tolerance","summary":"Implementing robust error boundaries across the BEAM and Python boundary using try-catch and pattern matching."},{"start_ms":1280000,"title":"Performance and Tool Selection","summary":"Comparing the speed and complexity of PythonX versus ErlPort for different project requirements."},{"start_ms":1460000,"title":"Real-world Case Study: BankID","summary":"Discussing the complexities of integrating Swedish authentication protocols within a multi-language stack."}],"topics":["Elixir","Python","ErlPort","BEAM","Global Interpreter Lock","Interoperability","Fault Tolerance","Software Architecture"],"duration_seconds":2102,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/elixir-wizards/episodes/python-in-elixir-apps-with-victor-bj-rklund/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/elixir-wizards/python-in-elixir-apps-with-victor-bj-rklund.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]}}