4 ms·
I used crossbar at multiple occasions in projects of various complexity. My main take away: - Pleasant to use and does almost exactly what it advertises - Int
by omneity 5y ago
I used crossbar at multiple occasions in projects of various complexity. My main take away:
- Pleasant to use and does almost exactly what it advertises
- Interesting authentication & permission patterns, unfortunately we couldn't extend it to the frontend, and that left us with a strange gap
- Hard to scale for serious cases, clustering is impossible in the open source edition and the commercial version costs in the 5 figures per cluster node
Ultimately I am quite confused about the target demographic of Crossbar (factories moving to IoT?)
I don't know of many pubsub + rpc solutions targeting a similar tradeoff with a tight packaging and a similar learning curve. Here are some I found then:
https://deepstream.io https://deepstream.io is the closest and has a richer feature set (including a replicating document store), however it seems to have a small ecosystem / community / limited support options, and permissions do not seem as advanced.
https://nats.io https://nats.io is close but lower level. Has a large community and rich ecosystem however.
Then you can also mix and match lower level technologies to achieve the particular set of tradeoffs you need. MQTT, AMQP, WS as the protocol, mosquitto / rabbitmq / zeromq, then json-rpc on top, grpc ...
- hhh 5y agoI don't see this fitting into the factory space for large orgs, if you have one factory you'll probably have many
- omneity 5y agoMy wording might have been ambiguous. I am sure you can scale Crossbar if you get the commercial version which supports clustering (hence IoT factories), however the open source edition is limited to a single running instance.
- sneak 5y ago> Hard to scale for serious cases, clustering is impossible in the open source edition and the commercial version costs in the 5 figures per cluster node I'm really tired of these fake open source projects. If you really believe in software freedom, you simply don't build or distribute proprietary software. Open core is bullshit. It's like a free software kernel distributed with a closed source libc. Nobody would call that project open source.
- f430 5y agoUnfortunately the Open source industry has been hijacked by VCs. They are polluting the space by chasing quick dollars and confusing developers and users.
- detaro 5y agoA company that after multiple years has 4 developers (two of them founders and apparently primary authors of the software) indeed loudly screams "VCs hijacking" instead of "some dudes making a consulting+support company involving their open-source project".
- chrisweekly 5y agoI appreciate (and agree with) your view, but sarcasm is often lost in translation; it'd be a better comment if you made it clearer (even adding an /s or 'eyeroll' would go a long way).
- f430 5y agoshut the fck up dude seriously.
- JimDabell 5y agoI think you are mixing up open source with free software. There is no moral imperative associated with open source software; its goal is to leverage the community for more effective software development to further business goals. Free software is all about sharing as a moral good. But as far as I can see, Crossbar doesn’t claim to be part of the free software movement, only that it is open source.
- jen20 5y agoHowever, the core of Crossbar is under the EUPL, a license whose text begins: “The European Union Public Licence (EUPL) is a copyleft free/open source software license”.
- yasserf 5y agocore author of deepstream here. Just wanted to pitch in with some of deepstream features. Deepstream currently has its own JSON/protobuf protocol that is similar to WAMP but also has presence and data-sync built in. The downside is that to get the full feature set you need Deepstream SDKs (which didn’t work out since they take too long to create and our core C SDK attempt for multiple languages failed miserably). So currently it’s just a very mature JS/node library. Permissions and authentication are also built in. Every single message that goes through the system (subscriptions and payloads) can be permissioned either through custom code or using a custom library called valve, which allows you to provide a config based permission file. You get access to the topic, payload, action, user session, and can even do lookups on the cache for data sync cross referencing. I spent a while after the company behind it (deepstreamHub) shutdown and released V5 under the MIT license which was an almost complete rewrite in typescript that allows you to: - add an adaptor layer for any real-time protocol that allows multiple protocols to talk to each other. So in our case was MQTT / JSON / Webpack / HTTP all supported on the same server chatting to each other. - a complete redesign of meta event listening. Which means any client can get notified when a user subscribes and unsubscribes to a topic (whether an event or a record (data sync object), as long as they have permissions to - a completely customisable plug-in architecture that allows you to hook into internal events. - a monitoring plugin that allows all message counts, errors, invalid permissions and general stats to be accessed via a http API - a fully working cluster that allows each node to be aware of the subscriptions on other nodes for smart data distribution (rather than a very noisy message bus) - real-time filtering on both rethinkdb and mongodb as a separate process. This allows you to automatically filter tables based on push notifications And a bunch of other features (multiple database, caches, message bus and other plugins). Unfortunately the tech itself never really picked off, I think the custom protocol was a large downside since it required custom SDKs and the VC backed nature doesn’t go hand in hand with OS, as mentioned in other comments. I stepped down as a maintainer over the last year as I found it hard to justify the cost of maintaining such a large feature set with such low adoption. It’s hard to say goodbye to a project that you spent so much time on, and I sometimes wonder if a rebrand and new documentation is all it needs. Adding wamp support can be done in a couple of days, but I don’t think lack of features is the issue behind its lack of success. Shout out to Wolfram Hempel, the original author of deepstream, and Caplin (a UK company that provides a real-time server called Liberator that powers a few large banks trading UIs) where the inspiration for deepstream was heavily based upon. Anyways, thanks for reading this far! If you came by deepstream before and didn’t use it for any reason, would love to hear why so I can improve any future project attempts.