Building API Gateways for Microservices
Embracing microservices architectures can directly impact client-side/mobile development. Decoupling user interfaces from backing service API’s is a critical first step to supporting the massive fragmentation in the client device ecosystem. We have to support a growing number of device manufacturers, device form-factors, runtime platforms, native vs. web, etc. However, as we move toward microservices, a naive implementation would require each UI application to have deep knowledge of a rapidly growing ecosystem of API’s. This is problematic for many reasons:
- API’s are normally not designed around the needs of specific mobile platforms, so responses will need to be efficiently transformed and compressed.
- Requiring interaction with multiple services to build one UI screen increases the number of required network round trips, increasing latency and decreasing battery life, therefore responses will need to be efficiently aggregated.
- Protocols used on the server side are not always well supported in clients, so requests will need to be translated.
The API Gateway pattern describes a common solution to this problem set and has been employed by companies like Netflix in their microservices architectures.
Topics will include:
- example mobile/UI use cases and associated problems
- pattern solutions to those problems
- concurrency patterns for API gateways: reactive and CSP
- frameworks supporting API gateway development
- SaaS solutions for the API gateway pattern
The learner should emerge from this session ready to employ API gateways in his or her own architectures.
About Matt Stine
My passion is taking a metaphysical approach to software engineering: what is the nature of the collaborative game that we continuously play, and are there better, more contextually-aware ways to play that game?
By day I lead a team tasked with taking a first-principles-centric approach to intentionally enabling programming language usage at the largest bank in the United States.
By night I write and teach my way through a masterclass in software engineering and architecture targeting early-career software engineers working in large-scale enterprise technology organizations.
What is the primary goal?
To win the game. More seriously: to get 1% better every day at providing business value through software.
Who am I?
I'm a 22-year veteran of the enterprise software industry. I've played almost every role I can imagine:
- Software Engineer
- Software Architect
- Technical Lead
- Engineering Manager
- Consultant
- Product Manager
- Field CTO
- Developer Advocate
- Conference Speaker
- Author
- Technical Trainer
- Technical Marketer
- Site Reliability Engineer
- Desktop Support Specialist
I've worked at Fortune 500 companies, a tenacious teal cloud startup, and a not-for-profit children's hospital. I've written a book, and I've hosted a podcast. I've learned a lot along the way, including many things I wish I'd known when I first got started. And so now I want to pass those learnings on to you, especially if you've only just begun your career.
More About Matt »