Ismael Celis
ismaelcelis.com
Ismael Celis
@ismaelcelis.com
First slide will be: “please watch this again at 0.75x”
November 9, 2025 at 3:33 PM
🤣
November 9, 2025 at 3:32 PM
Me and my accent, presenting at 1.5x
a cartoon mouse with a red scarf around his neck
ALT: a cartoon mouse with a red scarf around his neck
media.tenor.com
November 9, 2025 at 2:52 PM
There's so much I'll need to leave out, it physically hurts.

I've been trying to talk about error handling in eventually-consistent workflows for a year, but there's just no way to make it fit in the time I have.
November 9, 2025 at 12:46 PM
match_sourced_messages uses the same custom class. It just compares message struct fields while ignoring things like random UUIDs that aren't relevant to the test.
November 8, 2025 at 10:45 PM
TBH this is not much simpler than just testing the actors directly.
November 8, 2025 at 10:45 PM
Just a small custom class and a helper method
November 8, 2025 at 10:45 PM
Curious: in what way is it not already a data-driven test?
November 8, 2025 at 9:17 PM
It's a little Rack app. You require your domain's boot file (to load in your own Sourced reactors), and then launch it with your preferred server. Or you mount it in your own app's router.
November 8, 2025 at 2:57 PM
It is, but it’s very WIP and tied to my Event Sourcing library github.com/ismasan/sour...
GitHub - ismasan/sourced-ui: System dashboard and components for Sourced apps
System dashboard and components for Sourced apps. Contribute to ismasan/sourced-ui development by creating an account on GitHub.
github.com
November 8, 2025 at 2:40 PM
And the detailed history
November 8, 2025 at 12:19 PM
The result
November 8, 2025 at 12:19 PM
But it still appends events every step of the way, so you can register other consumers that monitor their execution.
November 8, 2025 at 12:19 PM
You can call it like a function, and even wait for termination
November 8, 2025 at 12:19 PM
The Todo List (the green box) can be a materialised projection, which can also service the UI, or it can just be an actor that re-hydrates itself from event history and decides when it's right to send web hooks.
November 7, 2025 at 12:21 PM