TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Show HN: Deepstream.io – open-source real-time server with pub/sub and data sync

301 pointsby troikaover 9 years ago

27 comments

akanetover 9 years ago
Interesting self-hosted alternative to Firebase. I have some questions (as someone seriously evaluating this for use)!<p><pre><code> * How mature would you say your code is? * Is anyone notable using this in production? * What kinds of bugs have you seen so far, and what do you think the biggest obstacles will be for you in the future? * Is anyone working on this full-time? Do you plan to make money off of this?</code></pre>
评论 #11072346 未加载
akumpfover 9 years ago
The &quot;Under the hood&quot; visualization is awesome. I think more projects need to take the time to communicate details like this (without just big blobs of text or links to big piles of source code without a high-level overview).<p>cheers!<p>Edit: link directly to the diagram here -- <a href="http:&#x2F;&#x2F;www.deepstream.io&#x2F;#segment-diagram" rel="nofollow">http:&#x2F;&#x2F;www.deepstream.io&#x2F;#segment-diagram</a>
评论 #11072536 未加载
noir_lordover 9 years ago
There is demo video of the parents organisations product.<p><a href="https:&#x2F;&#x2F;vimeo.com&#x2F;143728632" rel="nofollow">https:&#x2F;&#x2F;vimeo.com&#x2F;143728632</a><p>There are times I see stuff done in the browser that makes me feel inadequate, this is one of those times.<p>That interface is incredible.
评论 #11073051 未加载
espadrineover 9 years ago
What is the algorithm used for JSON synchronization? Operational Transformation, CRDT, diff&#x2F;patch?
评论 #11072087 未加载
评论 #11072149 未加载
_yyover 9 years ago
If you like this, also take a look at RethinkDB: <a href="https:&#x2F;&#x2F;www.rethinkdb.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.rethinkdb.com&#x2F;</a>
评论 #11072287 未加载
评论 #11073219 未加载
curryhowardisoover 9 years ago
Is there some way to get this working with Safari&#x27;s terrible audio (don&#x27;t even get me started on video) streaming api?<p>I know this isn&#x27;t your fault, and I&#x27;m not holding my breath. But the landing page is so beautiful, it felt like there was a chance you had answered my prayers haha!
评论 #11072531 未加载
jonduboisover 9 years ago
There is also Meatier <a href="https:&#x2F;&#x2F;github.com&#x2F;mattkrick&#x2F;meatier" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;mattkrick&#x2F;meatier</a> which is a more loosely-coupled alternative to Meteor.
评论 #11072449 未加载
awjrover 9 years ago
Is this similar to firebase <a href="https:&#x2F;&#x2F;www.firebase.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.firebase.com&#x2F;</a>?
评论 #11072187 未加载
Jonovonoover 9 years ago
Funny to see so many pubsub things on the home page today. I just finished making a NodeJS CLI app that syncs the song you are playing on spotify to others (<a href="https:&#x2F;&#x2F;github.com&#x2F;jonovono&#x2F;spotluck" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jonovono&#x2F;spotluck</a>)<p>I wanted a pubsub service so I could send the songs around. I wanted to be able to use it in a open source app and ideally client to client.<p>The one I ended up going with was Faye (<a href="http:&#x2F;&#x2F;faye.jcoglan.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;faye.jcoglan.com&#x2F;</a>) but I tried a few others.<p>Will take a look at this! Looks neat.
Matthias247over 9 years ago
Although I could only look at the surface up to now, this looks really interesting!<p>I always wondered why there are dozens of RPC-only and Pub&#x2F;Sub-only protocols out there and nothing that is really suitable for record&#x2F;property synchronization. Because this one important feature in my-domain I have implemented something quite similar to deepstream for my needs, but currently a little bit more limited (pure client-server model, there are no client-hosted RPC methods, no auth, etc.). I chose to make synchronization unidirectional, which avoids the need for merging and conflict resolution and works good for my use cases. There I would have a model where I say the client must call an RPC method on the server, that method would change a property and this would then get synced back to client. I guess that would also be possible with deepstream, but I woul need to configure it in order to let only a single client manipulate the property.<p>Some tech questions: - Are there any ordering guarantees? E.g. between different RPC calls as well as between RPC calls and messages and property updates? Giving those guarantees can increase the difficulty in implementation a lot, but reduces complexity in API design. - Have you also thought on meteor like optimistic updates? I thought it can probably be implemented by putting some additional information in the results of RPC calls - some information about which properties where updates as a side effect of the call and in which version of these properties the updates are applied.
majkeover 9 years ago
I skimmed the docs, but I&#x27;m unsure about the semantics. The pubsub, what happens to slow clients? The same for synchronization.<p>Basically - how it behaves when the clients are not behaving.
评论 #11072133 未加载
EGregover 9 years ago
How is it better than socket.io or <a href="http:&#x2F;&#x2F;socketcluster.io&#x2F;" rel="nofollow">http:&#x2F;&#x2F;socketcluster.io&#x2F;</a>
评论 #11078945 未加载
Svenskungankaover 9 years ago
Really nice to see Deepstream being on the front page of HN! I&#x27;m currently using Deepstream in production for one of our clients in-house applications, so unfortunately I can&#x27;t share a link. I&#x27;d like to give a few words on why I chose Deepstream.<p>TL;DR Deepstream is really good!<p>When I first found Deepstream and scimmed through the docs, I instantly noticed how thoroughly planned and well-thought it was. The features Deepstream offers ended up making us able to drop REST HTTP completely. Normally when you build a back-end, you have all your application logic in one place (authentication, CRUD API, sending emails, etc) but the way RPC&#x27;s and Providers in Deepstream are implemented, you want and can easily write your back-end as microservices. For example, you build a client that recieves RPC calls for hashing passwords, and if that client starts getting under heavy load, you can instantly spin up another instance of that client and connect to the Deepstream server, register for the RPC and Deepstream server will then distribute the RPC requests evenly among the two instances. Normally when you scale, you scale the entire back-end. Deepstream allow you to scale parts of your back-end really easily (e.g the part that sends emails, the part that hashes passwords or the part that crops &amp; scales images). This allows for some really efficient fine-tuning of your back-end.<p>Another awesome feature is Providers. Providers can do a lot of things, for example transform a standard third-party HTTP REST API (e.g Facebook) into an integrated record list in Deepstream that is synchronized in real-time. Another example is writing an efficient real-time provider that integrates with literally anything - filesystem, databases, logs, hardware utilization, nginx requests, third-party API:s, w&#x2F;e. The capabilities of Providers are endless.<p>Deepstream is <i>insanely fast</i> - I&#x27;ve worked with Meteor &amp; other real-time solutions before and Deepstream simply outperforms them by a long shot. This is mainly thanks to the Cache Connectors that are available, for example the Redis Cache Connector. Writing Storage- or Cache Connectors is really simple and straight-forward and seamlessly integrates with any kind of storage you want. Heck you can even write a Storage Connector that stores its data in Firebase if you want to be really crazy (and idiotic). Or maybe in a GitHub repository? These are just stupid examples to illustrate how extendable Deepstream really is.<p>I&#x27;ve just scratched the surface of Deepstream, so I really suggest that you go explore it yourself!<p>I see a lot of questions regarding how Deepstream differs from Socket.io, SocketCluster, Meteor, etc. I&#x27;ll go through each respectively a bit:<p>Socket.io is nothing more than a WebSocket server. Both Deepstream and Socket.io uses Engine.io (can be configured in Deepstream) behind the scenes, but comparing the two would is not really optimal as Deepstream is Socket.io plus a ton of additional features and performance improvements. You can technically re-build Deepstream by using Socket.io if you want.<p>Meteor is quite similar, but it has additional features (like being a full-stack framework) and their implementation of real-time sync is really bad. Meteor is by default locked-down to MongoDB and it&#x27;s a pain to write support for any other database as they&#x27;ve also locked you down to the fibers coroutines and you need a client-side implementation of it as well for caching purposes. The number of connected clients the two supports is massively in Deepstream&#x27;s favor, and Meteor doesn&#x27;t even come close to being as distributable as Deepstream is. Believe it or not, but I used to work with Meteor until I found Deepstream.<p>SocketCluster and Deepstream are very similar, and unfortunately I haven&#x27;t tried SocketCluster apart from reading the docs but to me, Deepstream is more developer friendly and straightforward and looks to have a better implementation. Since SocketCluster is on the front-page of HN as well, just looking at the live example they have on their website shows that it&#x27;s not able to keep up. The WebSocket connection is dropping a lot.<p>For those of you who use front-end frameworks like Angular&#x2F;Aurelia&#x2F;React&#x2F;Vue&#x2F;etc you&#x27;ll find it super simple to integrate Deepstream&#x27;s client directly into the bindings of the framework. For example (Aurelia): `&lt;input type=&quot;text&quot; value.stream=&quot;pets.husky.favoriteToy&quot;&gt;` would setup three-way bi-directional databinding to `pets&#x2F;husky` on the property `favoriteToy`. (I&#x27;m currently in the process of doing exactly this for Aurelia)
评论 #11078922 未加载
stemukover 9 years ago
Do you have any suggestions how to get started with deepstream + polymer (webcomponent library by google www.polymer-project.org&#x2F;1.0&#x2F; )? I have been doing some research on your website and I found toutorials for every major frontend framework except polymer, I would really appreciate a toutorial as a starting point for further projects, deepstream looks very promising to me!
sebakover 9 years ago
How does it compare to Meteor? And about the claim: &#x27;exceptionally fast&#x27;. What does this mean? Compared to what? Any benchmarks?
评论 #11072512 未加载
polskibusover 9 years ago
How does this compare to EventSource in terms of pubsub functionality? Are messages persisted in any way?
评论 #11072432 未加载
z3t4over 9 years ago
After a streak of HN articles loading slow or crashing my old mobile browser, your site loaded instantly! I have a heuristic bias that whether a web-tech company&#x27;s web site crash my mobile browser or not, reflects the quality of their technology.
评论 #11079034 未加载
brudgersover 9 years ago
Previous comments: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=9698858" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=9698858</a>
jessdawessover 9 years ago
Beyond using a JSON model, what differentiates this so much from other key&#x2F;value stores (e.g. Redis)?
评论 #11078941 未加载
ameliusover 9 years ago
How is security dealt with? I tried to find it in the documentation, but without luck so far.
评论 #11079051 未加载
vorticoover 9 years ago
297KB (114KB minified) seems a bit much for a client library, given its feature set.
chinathrowover 9 years ago
&quot;We know you&#x27;re worried about security, and so are we.&quot;<p>Please enable https for your website. Even the fact that I am looking at your site might interest others on or near my network.<p>Thank you.
评论 #11073172 未加载
morenoh149over 9 years ago
how does this compare to express&#x2F;koa&#x2F;hapi&#x2F;strongloop&#x2F;socket.io?
评论 #11078932 未加载
knownover 9 years ago
I like it
wiradikusumaover 9 years ago
interesting! does anyone know anything like this but for the jvm?
评论 #11072550 未加载
elcctover 9 years ago
Looks like &quot;deep&quot; is new &quot;cloud&quot; :)
zubairqover 9 years ago
Nice, I&#x27;ll investigate if Deepstream makes sense for AppShare, another realtime framework: <a href="https:&#x2F;&#x2F;github.com&#x2F;zubairq&#x2F;AppShare" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;zubairq&#x2F;AppShare</a>