You are viewing content from a past/completed QCon -

SESSION + Live Q&A

A Brief History of the Future of the API

The API landscape is constantly shifting. In the olden days, an API was just a way of coding against somebody else’s libraries. With the rise of networks in the 1990s, APIs became distributed across multiple systems, and we created patterns, standards and frameworks to make building those systems easier. In the 2000s, when XML ruled the world, we used SOAP to allow cross-platform remote procedure calls. Then the web-friendly ReST and JSON appeared and we all adopted that. Today, we compose complex applications from microservices that need high-performance messaging, which gRPC promises to deliver. Meanwhile, GraphQL competes with ReST to be the favoured solution for public, web-facing APIs.    

In this talk, we’ll look at these various technologies and standards from across the years, the pros and cons of each, and which solutions are appropriate for which problems. We’ll also look at ways of migrating legacy APIs from old technologies to the modern alternatives.


What is the work you are doing today?

At this very moment, I'm working on a tool for .NET developers to migrate from WCF to gRPC, to migrate from a 10-years old legacy system for making APIs and distributed systems to up to date current standards and framework for doing that.

What are the goals you have for the talk?

I'm hoping to show people how we got from the start of the whole idea of distributed systems and APIs, how we got from there to where we are today. How that evolution has happened and how it makes sense and what we should be focusing on and thinking about as we start building new APIs, or start building new distributed systems, but also how we can bring legacy systems into that space and update them and get them working alongside our newer code.

Do you have preferences? Do you have opinions on which things to apply where?

If you're creating an API that you're going to publish and people can either connect to it for free or through some paid subscription, then generally a RESTful API, a straightforward HTTP returning JSON or possibly XML, is always better for that. It's much easier to dig in and explore an API if the things it returns are human readable. But for internal systems and communications between systems on an internal network, and especially microservices where you care much more about speed and efficiency, then gRPC is the current gold standard for that kind of API. But both of these things are obviously always subject to review because people come up with new things and new ideas and new ways of doing things. But certainly right at this moment, those would be the two things I'd recommend.

What do you want people to leave the talk with?

I think a lot of people hear API and they just think HTTP and JSON, and I want to introduce those people to some of the other options that are available, and help them to understand why those other options might be a better choice for some of their use cases. Potentially in any audience I've been talking about WCF and gRPC for about a year now, and I ask the question "Who's using WCF?", and no hands go up. And then I ask "Who has legacy systems in their organization that are built with WCF?", and around 25% of the hands in the room go up. They've got these legacy systems. And so I want to talk a little bit about migration strategies to get from one thing to the other as well and to not get stuck with systems based on very old solutions.


Speaker

Mark Rendle

Co-Author of gRPC for WCF Developers and Creator @VisualRecode

Mark has been developing software professionally for over 30 years, and has lived through many paradigm shifts in the way applications are designed, built and delivered. He now works as an independent consultant and teacher, helping people build cloud-native .NET applications and migrate their...

Read more

From the same track

SESSION + Live Q&A API

Next Generation Client APIs in Envoy Mobile

Relentlessly pursuing a consistent user experience means deploying a server with 100% reliability is ineffective if it’s not matched by our mobile applications. Learn how Lyft’s Client Networking team has evolved Lyft APIs to create consistency between mobile platforms and the...

Jose Nino

Software Engineer @lyft and Envoy Maintainer

SESSION + Live Q&A London

Introducing and Scaling a GraphQL BFF

In 2020, many developers are sold on GraphQL, and are choosing to introduce it to their codebase in the form of a "Backend For Frontend" API. But what happens next? After a year or two in production, this GraphQL BFF might need to scale to serve more than just a single application.This...

Michelle Garrett

Software Engineer @Twitter

PANEL DISCUSSION + Live Q&A API

Panel: How to Make the Future Become Your Present

"Life moves pretty fast. If you don't stop to look around once in a while, you could miss it." - Ferris Bueller    Software development moves pretty fast. What's new and amazing one moment is old and boring the next. How do you keep up with all the changes, and figure...

Mark Rendle

Co-Author of gRPC for WCF Developers and Creator @VisualRecode

Richard Li

Founder and CEO @datawireio

Michelle Garrett

Software Engineer @Twitter

SESSION + Live Q&A API

Moving Beyond Request-Reply: How Smart APIs Are Different

Integrating microservices or other components is hard, as it involves taming distributed systems. New API technologies are great, but can't magically solve all underlying challenges. This talk distills real-life experiences around typical architecture patterns. You will understand why you...

Bernd Ruecker

Co-founder and chief technologist @Camunda

SESSION + Live Q&A Interview Available

The Future of Cloud Native API Gateways

The introduction of microservices, Kubernetes, and cloud technology has provided many benefits for developers. However, the age-old problem of getting user traffic routed correctly to the API of your backend applications can still be an issue, and may be complicated with the adoption of cloud...

Richard Li

Founder and CEO @datawireio

View full Schedule