Meet Stl.Fusion: A Reimagined “Computed Observable” For Distributed Real-Time Apps
Time to announce an open-source project I worked on over the last few months:
Have you ever dreamed to have an abstraction that magically delivers every change made to you server-side data to every client that displays it? Or a caching API that automatically evicts a cached entry right at the moment it becomes inconsistent with the ground truth?
Stl.Fusion solves both these problems — moreover, it does this almost transparently for you, so most of your code won’t even change.
Fusion in action, syncing server-side state to 3 different clients (instances of the same Blazor app) running in their own browser tabs:
I’ll be writing more about Stl.Fusion over the next few weeks, but for now — just a few links:
- Stl.Fusion GitHub Repository — the README.md in the root explains what’s new there and why/when you might want to use it
- Overview explains how Fusion works
- “Stl.Fusion In Simple Terms” is the best explanation of what Fusion is for non-developers
- There is an interactive, web-based tutorial created with try-dotnet. Not fully finished yet, but the key parts are there. I’ll add more content to it this weekend.
- Every idea has a story behind it, and Fusion has it too
- Other documentation.
I’ll be happy to hear any feedback — either here or on the Discord Server we setup for Fusion-related announcements and Q/A.