Rust at the Core - Accelerating Polyglot SDK Development

Abstract

Developing SDKs for your users in multiple languages can come at a high cost - especially if you need to implement complex logic client side, but traditionally options for sharing logic across those languages have been quite limited.

Rust provides a means of defining shared logic usable from multiple languages, much like you could with C, without having to… write C. Combined with an IDL for representation of shared objects, you have a powerful means to keep your language-specific layer thin.

In this presentation I’ll explain the architecture of Temporal’s open source SDKs, and how we use it to centralize some extremely complex logic across 5 user-facing SDKs written in different languages.

Topics will include:

  • What Rust helps us with
  • IDL choices and serialization concerns
  • Asynchronous task representations across language boundaries
  • Compiling to WebAssembly to avoid native extension issues
  • Staying idiomatic in the host language
  • Limitations and pitfalls

Speaker

Spencer Judge

Engineering Manager @Temporal Technologies, previously Senior Software Engineer @Transparent Systems, Senior Software Engineer @ Tableau Software

Spencer has worked on tools, libraries, and products for other Developers for over a decade. He has a longstanding interest in, and passion for, learning and developing in multiple languages.

Currently he leads the SDK team at Temporal, which develops libraries providing durable execution in 8 languages.

Spencer lives in Seattle and enjoys spending his free time on endurance sports and rock climbing.
 

Read more
Find Spencer Judge at:

From the same track

Session

Keeping the Mainline Green Across Diverse Language Monorepos

Monday Nov 17 / 10:35AM PST

At Uber’s scale, ensuring an always-green mainline while processing hundreds of changes per hour is a massive challenge— especially when those changes span multiple language monorepos supporting dozens of business-critical apps.

Speaker image - Dhruva Juloori

Dhruva Juloori

Senior Software Engineer @Uber, Core Contributor to SubmitQueue (Uber's CI System at Scale), Expert in Machine Learning, Distributed Systems, and Developer Productivity

Session

Unconference: Polyglot Platforms

Monday Nov 17 / 02:45PM PST

Session

Polyglot Persistence: When One Database Just Isn't Enough

Monday Nov 17 / 01:35PM PST

Details coming soon.

Session

Unifying a Diverse Technology Stack with Kubernetes

Monday Nov 17 / 03:55PM PST

Details coming soon.

Session

From Monolith to Mosaic: Strategies for a Safe and Successful Polyglot Migration

Monday Nov 17 / 05:05PM PST

Details coming soon.