Call for round the year submissions for Rootconf in 2020

Call for round the year submissions for Rootconf in 2020

Submit a proposal at any time in the year on DevOps, infrastructure security, cloud, and distributed systems. We will find you a suitable opportunity to share your work.

jt

jatin thapar

@jatinthapar10

GraphQL @ Scale

Submitted Apr 18, 2019

Modern web servers need to cater to multiple clients on web, mobile and desktop. The views across the clients vary a lot, so same server API response across all clients is not optimal. GraphQL offers a powerful technology for building web API’s which enables clients to query data which they want and how they want without compromising on the performance.

As a part of this talk I am going to talk about our GraphQL journey while building Microsoft Teams. We will focus on how we built a scalable, multi geo deployed GraphQL Server backed by Azure Cosmos DB powering some key features in Microsoft Teams.

Outline

  • What is GraphQL?
  • Why GraphQL over REST?
  • Best practices for designing a GraphQL schema
  • GraphQL Server Architecture in Teams
  • Various GraphQL patterns we put in
    • Error handling
    • Telemetry & Monitoring
    • Throttling patterns.
  • Best Practices
  • Deployments

Speaker bio

I am Jatin Thapar Software Engineer from Microsoft India Development Centre, Bengaluru and working on building a Data Layer for ‘Teams’ services with a GraphQL endpoint. It has been close to 5 years working on backend developer, shipping enterprise software products. In Microsoft had a privilege of working on a new and fast growing product, Microsoft Teams and learning each day on being customer focussed and compliance first. Before Microsoft, I was working with Informatica on a data security and risk analytics product.

Working with databases has always been exciting for me, right from my graduation days!!

Links

Slides

https://drive.google.com/file/d/1w0v1K289cjGiIbdJUYqz0W_tAGR-HVxw/view?usp=sharing

Comments

{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}