
Show HN: deepstreamHub – a faster Firebase with an open core - codebeast
https://deepstreamhub.com#start
======
osullivj
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]

~~~
wolframhempel
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](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

------
fiatjaf
What database do you use behind this whole infrastructure?

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

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

~~~
wolframhempel
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

