In this talk, we'll explore reasoning with async Rust. We'll be introduced to its fundamental building blocks, such as `async`, `await`, `join` and `select`, and learn how to predict the behavior of code written with them.
Reasoning through concurrent systems has always been a challenging task. Poor code can be riddled with race conditions, non-terminating cases and other complex concurrency bugs; and even well-written code can be hard to understand. Async programming is an innovative concurrent programming model that rises to this challenge. In this talk, we'll explore reasoning with async Rust. We'll be introduced to its fundamental building blocks, such as `async`, `await`, `join` and `select`, and learn how to predict the behavior of code written with them. We'll build on these to simplify more complex concurrency puzzlers. Finally, we'll explore different approaches to handling concurrent state and see how they compare.
Choosing Rust is already improving your life as a programmer. But there’s always something we can still improve. So here’s a series of tips to save you time, typing, sanity or all of them.
In this talk, we will discuss how you can use Durable Execution to harden your applications in a few key areas: workflows, asynchronous tasks, microservice orchestration, and event processing.
We will explore some ways to make Async Rust programming more enjoyable and more efficient at the same time.
I applied PGO to many kinds of software, collected a lot of carefully hidden traps on my journey, and found multiple ways how to avoid them. In this talk, I want to share with you my experience.
In this lightning talk, we take a look at ArcShift, a lock-free data structure for shared data that still needs to be mutated.