Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: deepstreamHub – a faster Firebase with an open core (deepstreamhub.com)
13 points by codebeast on March 29, 2017 | hide | past | favorite | 6 comments


deepstream looks very cool, and I'm naturally interested because of the financial trading backgrounds of some of the lead devs, having worked in that area with latency critical pub sub systems. Where can I read more about these points...

1. The pub sub system is C++ wrapped in node.js? Why node & JS? That's an unconventional choice for trading systems. Are there C++ APIs?

2. How does it compare with crossbar.io? I find crossbar appealing as it's Python, and I like to use a mix of Python and C++ depending on performance and time to market requirements.

3. Comparison with Caplin Liberator: does deepstream have the Liberator feature where publishers only publish when there's a subscriber? This was a great enhancement of the traditional pub sub paradigm.

4. Do you have any real trading system customers?

[Disclosure: I'm a former Caplin customer, and have built trading systems at JP & BarCap]


Thanks so much.

1. I appreciate the C++ and Node choice sounds like a strange idea at first, but allowed us to significantly speed up development and benefit from the rich NodeJS integration ecosystem without sacrificing performance. We wrap both aspects into a single, pre-compiled executable with further performance optimizations.

There's also C++ client SDK which we're currently extending (https://github.com/deepstreamIO/deepstream.io-client-cpp).

2. The C++ client is designed from the ground up as a foundation for a Python and Go client via SWIG wrapping - so a Python client is on the very immediate roadmap. Crossbar and the WAMP standard provide pub/sub and request/response which deepstreamHub offers as well, but deepstream's core is a realtime datastore for stateful objects that are persisted and synced (think Liberator records).

3. Yes, it's called listening. You register a RegExp pattern and get informed whenever the first client subscribes or the last client unsubscribes from a record or event matching that pattern. This allows for the creation of active data provider that send data only when needed. Deepstream offers some additional functionality like provider state and failover as well as the ability to add more provider on the fly and loadbalance requests between them.

4. Yes - but due to the nature of these I'm afraid I can't publicly disclose them. Happy to discuss on wolfram.hempel@deepstreamhub.com


What database do you use behind this whole infrastructure?


After a lot of experimenting we settled for PostGres - fronted by caches


nice - but except firebase, how is this different from other pub-sub services?


It does publish-subscribe as well, but at its core its a realtime datastore that lets manipulate and observe small JSON objects called records. Any change is immediatly persisted and synchronised across subscribers. It also has some other stuff like request-response or realtime search




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: