Any plans for browser support?

I’m not sure if you are aware, but “Local-First” movement has started to take off in the web industry, which makes event sourcing possible in the browser. The idea is since browsers have enough storage now and user devices can easily rival your average server in performance, we can now move all the logic to the browser, use local storage like SQLLite and sync with the backend in the background - the user owns their data, the webapp works offline and with near zero latency, the server becomes a simple backup/sync storage.

I am definitely jumping on this train as I’m hearing this come up often from syntax.fm and their respectable guests. I would totally use axon if it was in the browser but since it’s not I’ll have to use something else and then forward it to axon on the backend. For my app I still need to keep some ETL jobs and such on the backend, so I’m keeping my spring boot server.

Framework: https://livestore.dev/

Watch this short presentation from the framework creator: https://www.youtube.com/watch?v=nyPl84BopKc&pp=0gcJCcEJAYcqIYzv

Hi Sam,

I’ve heard about similar concepts, but nothing concrete, especially under the name “Local-First,” so thank you for sharing! I just opened the website and started watching the presentation. I’ve shared it with others within AxonIQ.

It looks very interesting - we will investigate it a little. If you already have some ideas on how to introduce it with Axon Framework/Server, please feel free to share them with us!

Warm regards,
Mateusz

I wonder what kind of things you would run into using Axon Server for such an approach? I guess the biggest challenge would be to ‘unite’ two distached sessions? You already could implement something to sync events in the frontend with Axons Server.

Hmm, apparently I can run a jar inside of a browser via https://cheerpj.com/, so maybe I can just run axon server like this? lol

The lofi framework has an easy plugin support, so I might try this Build your own sync provider | LiveStore (0.3.1)

Do you think it’d be possible to run a single node axon server via wasm (cheerpj) in the browser offline normally and let it online very shortly once a day to sync?