Hey everyone, one of the founders here! We've written a blog post that pretty much sums up our vision on real time infrastructures and our drive for this product. Have a look: http://blog.telepat.io
Good question, we get this asked a lot (usually in relation with companies such as PubNub or Pusher.io). It's different in a number of ways:
- it's compatible with any number of protocols (we call them transports). Currently, we support websockets, APNS and GCM. MQTT could easily be added as a transport protocol for subscribing to channels
- it also handles data aggregation (for example if you have a large number of updates on an object in a short amount of time, the system will aggregate them and send only the relevant updates to the subscriber)
- it's more open (in my opinion) as it's designed to enable developers to swap out one component for another (and writing a thin adapter for it if it's not already available). This should also mean that the whole system can be better optimized depending on the workload type and use-case.
I think your comparison with Meteor is not fair. You are not obliged to use Meteor in back and front, you can have a meteor backend and load a DDP client in about any language.
And as I'm doing one right now you can have a only front application talking to a rest server. So it's more flexible than what you tell in your comparison. Also I might not be fair because I'm a Meteor addict :D
Thanks, we'll revisit this and check our comparison, we haven't used Meteor extensively so far, so we might have missed stuff. The reason we have that comparison section is that we get asked about this quite a lot, so we wanted to have a public statement on what we think the main differences are from similar products.
To comment further on that, here's some more information for you guys based on the comparison notes:
* Meteor is a solution for both frontend and backend development, while Telepat focuses on backend functionality.
- You can use it for just the backend if you want. This statement is true, but just noting that you don't have to use both sides.
* When using Meteor in the backend, you also need to use it in your frontend app. Telepat lets you use any frontend framework.
- You don't have to use it with just Meteor's front end (which is I think what you meant). It has integrations with other front end frameworks and you could use it with just about any front end framework as long as you add some boilerplate to communicate with the client-side store and DDP.
* Meteor is a solution for creating webapps, and running on mobile devices works only via webviews. Telepat enables native clients and native functionality for mobile or embedded.
- Not true actually. They make it the easiest to get mobile apps out with Cordova and webviews, but there are various libraries out there like the ObjectiveC-DDP or meteor-ios library that integrates natively with iOS applications.
* Telepat allows using adapters for 3rd party databases, messaging queues and push transports.
- You can do this with Meteor as well and integrate NPM packages.
I hope that helps shed some light on the comparison.
The platform looks great though. I'll definitely have to take a look at it sometime soon.
I was wondering though, looking at the stack, if some parts couldn't be substituted with "lighter" alternatives? I'm assuming couchbase is being used for the changes feed and since you can't do adhoc querying you need "elastic search" for that, however wouldn't it be possible to replace both with just rehinkdb? Anyway I'm just speculating here, I should probably dig into the code.
Thanks for sharing this and keep up the good work!
Update: seems you'll still need elastic search for rethinkdb full text search [0]
I was searching for a good framework for an online booking system, and though one link and other stumbled upon this. I have't heard about it before, so I thought it would be nice to share it with HN; github repo seems to have a low involvement from anyone outside the creators https://github.com/telepat-io .
We're working on providing plugins for a wide range of components, so that you can switch couchbase, kafka or elastic for other, lighter products that you might have on your stack already
Racer is great at synchronizing objects, and more flexible than Derby. One key difference between Racer and Telepat is that the Racer client needs to run within a JS container, while Telepat offloads native functionality to native clients. I'd say we're more mobile and user-access oriented than Racer, basically, but we're more architecturally apart as well.
Great work on the architecture documentation. I'm looking at your repos on Github and I'm curious about something. What are you using to test telepat-api, workers, and the integration with all the third party projects listed in the docs?
We're using a combination of should, assert, supertest, mocha and istambul right now. We're still working on a larger code coverage, but we will be releasing the tests along with our next release.