4 ms·
semi-related - does anyone know of any software frameworks/libraries for writing IoT event based systems stuff on this sort of mesh network? I have a side proj
by plaguuuuuu 4y ago
semi-related - does anyone know of any software frameworks/libraries for writing IoT event based systems stuff on this sort of mesh network?
I have a side project in mind where IoT devices (dropping in and out of 4G and/or ad-hoc wifi or bluetooth) need to communicate and send/receive events, reconciling with event sourcing or whatever
The tough parts of the architecture for this seem pretty generic so I'm hopeful that something already exists!
- codegangsta 4y agoHave you looked at nats.io? High performance messaging with a flexible persistence layer. Servers can be meshed via leaf node connections. Perfect for IoT and edge
- piceas 4y agoWorks nicely with zerotier to simplify testing it out.
- jacquesm 4y agoMail me?
- somat 4y agoIt's not lightweight and it's not exactly a mesh network, that is, it's not a level 2 mesh it is level 5 mesh so you still need to get an ip somehow. but ipfs exposes it's dht for general purpose use via it's pubsub sytem. I had a lot of fun abusing this to make a serverless[1] video streaming platform. The video streaming ended up being shit with fundamental issues I don't think I could solve. but it was fun to put together the proof of concept. 1. actually serverless. not "the server is in the cloud" bullshit people usually mean when they say serverless.
- bboygravity 4y agoSounds like https://lbry.com/ https://lbry.com/ ?? How did they solve or work around what you couldn't solve? Curious due to some deeply engrained dislike of anything centralized :p
- somat 4y agoipfs is fairly good for distributing files. I was watching a twitch stream and wanted to see if I could replicate that sort of use case. live streaming. Note I am not that great of a programmer in the first place and I loose interest quick once I start getting into ui code. The theory was to listen to an incoming video stream chop it into 2-3 mb segments and publish each segment via ipfs, the program then notifies everybody watching what the next segment is via a signed ipfs pubsub message. To watch a stream you get your streamers public key(so you can identify their segment messages are valid) and subscribe to their ipfs pubsub channel. as the software gets segment messages it downloads the segments via ipfs and reassembles the video. Theoretically it would scale automatically to the population of people watching the stream. with the watchers providing the scale infrastructure. realisticly ipfs pubsub does not scale but the real problem was the lag. the lag started at around 2 minutes and went up rapidly. My impression is that streamers value interactivity with the watchers and would not tolerate such a large lag. My proof of concept code. it is very primitive, no ui, designed (both client and server) for the user who enjoys a unix style environment. I think about trying to finish it every now and then but have not yet found the motivation. http://nl1.outband.net/fossil/ipfs_stream/doc/tip/readme.md http://nl1.outband.net/fossil/ipfs_stream/doc/tip/readme.md
- MayeulC 4y agoPeertube does something similar for livestreaming, with 30s to 60s of latency. WebTorrent instead of IPFS, but the concept is similar.
- linsomniac 4y agoHave you looked at OpenZiti? I'm a bit surprised it wasn't included on this list. I've only played with it a tiny bit, I had problem getting it set up ~a year ago, but I've heard they have improved the documentation.