Protocol buffers and GRPC - Building friendly services
Kasisnu Singh (~kasisnu21) |
Do you or your team write lots of services? Do you worry about the less glamorous bits about maintaining your service? Is your company growing aggressively and adding code in lots of different programming languages? Are you tired of writing HTTP clients for all your services in every programming language? Do you build your APIs with Python and then write HTTP client code in Java for your mobile apps? Do you want to deprecate your old API but are worried all your clients won't be able to keep up? - Then this is the talk for you.
Did you know that you're not the only one who has these problems? Companies big and small struggle with these but most of them seem to have settled on how to approach them. In this talk we'll look at how we can structure our data for compatibility with our present and future clients using Protocol Buffers. We'll also learn how to communicate this data effectively to our clients using GRPC, with almost no effort spent on serialisation/deserialisation. We will also see how we can write services that can be consumed by non-Python clients and how we can consume services written in languages other than Python but without having to learn a new language or a clunky framework. The goal is to build a service that is easy to write, easy to consume and scales very efficiently as the problem grows.
In short, we'll learn to do more with less.
This will be a demo-driven talk with few slides. We will look at and write real Python code that gets things done.
Basic understanding of JSON over HTTP would be helpful, but is not necessary. We will cover the basics at the beginning of the talk.
Basic understanding of Python classes would also be helpful, but is also not necessary.
No other pre-requisites.
I've spent almost all my adult life building distributed systems and understanding how they work. I've worked on interesting problems almost exclusively in a polyglot environment and this often reflects in the code I write or my approach to dealing with problems. I've debugged strongly consistent* key-value stores, run container orchestration systems at scale and broken my foot once from falling down a stairwell.
I work with Grofers trying to make developers more productive and infrastructure more reliable.
I look forward to seeing you at PyCon India