Conrad Irwin
๐ค SpeakerAppearances Over Time
Podcast Appearances
So the test platform will reorder different async events that happen simultaneously so that you get more test coverage, for example. It also means you can refactor the code and it doesn't break the tests. That's always been my gripe with unit tests. You change the code and then you have to change the tests. What's the point?
So the test platform will reorder different async events that happen simultaneously so that you get more test coverage, for example. It also means you can refactor the code and it doesn't break the tests. That's always been my gripe with unit tests. You change the code and then you have to change the tests. What's the point?
So the test platform will reorder different async events that happen simultaneously so that you get more test coverage, for example. It also means you can refactor the code and it doesn't break the tests. That's always been my gripe with unit tests. You change the code and then you have to change the tests. What's the point?
Yeah, Protobuf is kind of like the classic solution to this. We're actually thinking about changing off them because they don't integrate with Rust super well. And as all of our code is in Rust, it'd be nice to have something that integrates better. But one of the main challenges of a distributed system is you have to be able to deal with messages sent from the past. So like, you know, forward .
Yeah, Protobuf is kind of like the classic solution to this. We're actually thinking about changing off them because they don't integrate with Rust super well. And as all of our code is in Rust, it'd be nice to have something that integrates better. But one of the main challenges of a distributed system is you have to be able to deal with messages sent from the past. So like, you know, forward .
Yeah, Protobuf is kind of like the classic solution to this. We're actually thinking about changing off them because they don't integrate with Rust super well. And as all of our code is in Rust, it'd be nice to have something that integrates better. But one of the main challenges of a distributed system is you have to be able to deal with messages sent from the past. So like, you know, forward .
And then you also need to be able to deal with messages sent from the future. So if someone is on a newer version of the set than you, they could send you a message. And you need to be able to do something in that case that isn't this crash. And so there's not much that handles that. There's protobufs and kind of a couple other big, heavy solutions.
And then you also need to be able to deal with messages sent from the future. So if someone is on a newer version of the set than you, they could send you a message. And you need to be able to do something in that case that isn't this crash. And so there's not much that handles that. There's protobufs and kind of a couple other big, heavy solutions.
And then you also need to be able to deal with messages sent from the future. So if someone is on a newer version of the set than you, they could send you a message. And you need to be able to do something in that case that isn't this crash. And so there's not much that handles that. There's protobufs and kind of a couple other big, heavy solutions.
But there seems to be kind of a missing niche for a Rust-based thing that can solve this. Because one of the downsides of protobufs is it generates a whole bunch of struct definitions. It's like, well, we have all the structs defined in our code base, and we have to map between the two.
But there seems to be kind of a missing niche for a Rust-based thing that can solve this. Because one of the downsides of protobufs is it generates a whole bunch of struct definitions. It's like, well, we have all the structs defined in our code base, and we have to map between the two.
But there seems to be kind of a missing niche for a Rust-based thing that can solve this. Because one of the downsides of protobufs is it generates a whole bunch of struct definitions. It's like, well, we have all the structs defined in our code base, and we have to map between the two.
It would be nice if we could, more like Serde, just say, and make the struct forward, backward compatible over the wire, please. But I haven't found anyone who's built that yet.
It would be nice if we could, more like Serde, just say, and make the struct forward, backward compatible over the wire, please. But I haven't found anyone who's built that yet.
It would be nice if we could, more like Serde, just say, and make the struct forward, backward compatible over the wire, please. But I haven't found anyone who's built that yet.
We use one, I'm trying to remember what it's called in a different part of the code base. It's like MessagePack or something like that, which works fine, but it doesn't have any versioning support. Yeah.
We use one, I'm trying to remember what it's called in a different part of the code base. It's like MessagePack or something like that, which works fine, but it doesn't have any versioning support. Yeah.
We use one, I'm trying to remember what it's called in a different part of the code base. It's like MessagePack or something like that, which works fine, but it doesn't have any versioning support. Yeah.
Definitely. And we have a build step that does it for you. But for example, if you have an error in the protobuf file, it breaks everything because the build step fails. And then it's like, oh, you can't build. And you have to really dig in and find out why that is. But yeah, thanks for the postcard link. And I will look into those. Thank you.
Definitely. And we have a build step that does it for you. But for example, if you have an error in the protobuf file, it breaks everything because the build step fails. And then it's like, oh, you can't build. And you have to really dig in and find out why that is. But yeah, thanks for the postcard link. And I will look into those. Thank you.