"Ejector Seats and Escape Hatches: Designing Your API to Fail" by: Meredydd Luff I hate to break it to you: Your API design isn't perfect. Whatever abstraction you create, it will leak, and it will fail. I don't mean throwing errors; I mean something worse: building an API that doesn't allow what your users need to do. We've got this problem big-style at Anvil, where we're simplifying web development by letting you build everything in Python - including the UI and browser-side code. It's a challenge: the existing HTML/JS/CSS/framework ecosystem is fiendishly complex, and so huge that we can't possibly cover everything in a nice, Pythonic API - however carefully we design it. So we need to design our APIs to fail - and to fail well. In this talk, I'll be asking: - How do abstractions fail? - What happens when your abstraction prevents a user from doing what they need? - What are common strategies "in the wild"? Do you go down with the ship? Do you eject? Or can you build a real escape hatch?
Recorded at the 2021 Python Web Conference (https://2021.pythonwebconf.com)