Apollo with Nicolas Moutschen
We discuss Rust adoption, Rover CLI, testing, resources for Rust developers, technical aspects, crate challenges, and the inclusive Rust community.
2024-01-11 60 min
Description & Show Notes
In this episode, Nicolas, a staff software engineer at Apollo GraphQL, discusses the company's use of GraphQL API technologies. Apollo GraphQL specializes in open-source libraries for both client and server-side applications, with a focus on integrating Rust into their main offerings: the Apollo router and GraphOS cloud. Nicolas explains how the Apollo router consolidates multiple microservices into a single API, efficiently routing requests to appropriate services.
He delves into GraphQL's role as an effective query language for APIs, highlighting its ability to provide a comprehensive description of API data and its compatibility with existing data systems. The shift from the JavaScript-based Apollo Gateway to the Rust-based Apollo Router is a key topic, with an emphasis on the performance and safety improvements Rust brings to the table.
The conversation covers the use of Rust for the router and GraphQL parser, alongside Kotlin for the management plane and GraphQL for the API. Challenges in stability and reliability are discussed, as well as Rust's advantages in safety and type system consistency. Nicolas shares insights on Async Rust, particularly its impact on productivity and application in CLI tools like Rover.
The episode also addresses learning Rust in stages, from basic language concepts to advanced internal mechanisms. It touches on functional patterns in Rust and strategies for effective dependency management. Closing the discussion, Nicolas highlights the inclusive and supportive nature of the Rust community.
GraphQL is at the core of companies like GitHub, trivago, and Facebook. In this episode, Nicolas, a staff software engineer at Apollo GraphQL, discusses the company's products and how they use Rust in the core of their GraphQL engine: the Apollo router.
About Apollo
Apollo is the industry-standard GraphQL implementation, providing the data graph layer that connects modern apps to the cloud. Apollo is the company behind the open-source GraphQL platform that helps developers build and ship apps faster with open source tools and a cloud service.
About Nicolas Moutschen
Nicolas Moutschen is a Staff Software Engineer at Apollo. He is a Rust enthusiast and has been using Rust for years at Apollo and at AWS where he worked on the serverless infrastructure. He writes about Rust on his blog n14n.dev (https://n14n.dev/).
Links
- Apollo Router - High-Performance Federation Runtime Announcement: https://www.apollographql.com/blog/apollo-router-our-new-high-performance-federation-runtime-is-now-available-in-open-preview
- Learn more about Apollo: https://www.apollographql.com/
- Apollo on Twitter: https://twitter.com/apollographql
- Nicolas Moutschen on Twitter: https://twitter.com/NMoutschen
- Nicolas Moutschen on LinkedIn: https://www.linkedin.com/in/nmoutschen/
- Nicolas Moutschen: https://n14n.dev/
About Apollo
Apollo is the industry-standard GraphQL implementation, providing the data graph layer that connects modern apps to the cloud. Apollo is the company behind the open-source GraphQL platform that helps developers build and ship apps faster with open source tools and a cloud service.
About Nicolas Moutschen
Nicolas Moutschen is a Staff Software Engineer at Apollo. He is a Rust enthusiast and has been using Rust for years at Apollo and at AWS where he worked on the serverless infrastructure. He writes about Rust on his blog n14n.dev (https://n14n.dev/).
Links
- Apollo Router - High-Performance Federation Runtime Announcement: https://www.apollographql.com/blog/apollo-router-our-new-high-performance-federation-runtime-is-now-available-in-open-preview
- Learn more about Apollo: https://www.apollographql.com/
- Apollo on Twitter: https://twitter.com/apollographql
- Nicolas Moutschen on Twitter: https://twitter.com/NMoutschen
- Nicolas Moutschen on LinkedIn: https://www.linkedin.com/in/nmoutschen/
- Nicolas Moutschen: https://n14n.dev/
Transcript
Matthias
00:00:19
Nicolas
00:00:26
Matthias
00:01:45
Nicolas
00:01:57
Matthias
00:02:57
Nicolas
00:03:21
Matthias
00:04:12
Nicolas
00:04:24
Matthias
00:05:32
Nicolas
00:05:39
Matthias
00:06:37
Nicolas
00:07:05
Matthias
00:08:12
Nicolas
00:08:53
Matthias
00:11:11
Nicolas
00:11:17
Matthias
00:12:40
Nicolas
00:12:56
Matthias
00:13:17
Nicolas
00:13:26
Matthias
00:13:45
Nicolas
00:14:06
Matthias
00:15:57
Nicolas
00:16:22
Matthias
00:17:30
Nicolas
00:17:42
Matthias
00:18:07
Nicolas
00:18:23
Matthias
00:19:10
Nicolas
00:19:16
Matthias
00:20:29
Nicolas
00:20:46
Matthias
00:21:55
Nicolas
00:22:01
Matthias
00:22:33
Nicolas
00:22:54
Matthias
00:23:35
Nicolas
00:24:08
Matthias
00:28:06
Nicolas
00:28:28
Matthias
00:30:11
Nicolas
00:30:36
Matthias
00:31:20
Nicolas
00:31:52
Matthias
00:32:27
Nicolas
00:33:04
Matthias
00:35:06
Nicolas
00:35:18
Matthias
00:36:44
Nicolas
00:36:45
Matthias
00:38:23
Nicolas
00:38:47
Matthias
00:40:11
Nicolas
00:40:33
Matthias
00:41:17
Nicolas
00:41:31
Matthias
00:42:34
Nicolas
00:42:39
Matthias
00:44:22
Nicolas
00:44:50
Matthias
00:46:17
Nicolas
00:46:21
Matthias
00:46:24
Nicolas
00:46:25
Matthias
00:47:47
Nicolas
00:48:04
Matthias
00:48:31
Nicolas
00:48:51
Matthias
00:50:22
Nicolas
00:50:49
Matthias
00:51:39
Nicolas
00:52:00
Matthias
00:53:41
Nicolas
00:53:51
Matthias
00:55:06
Nicolas
00:55:14
Matthias
00:55:15
Nicolas
00:55:29
Matthias
00:59:45
Nicolas
00:59:55