I've been reading about Deepstream & it seems like an awesome solution for real-time applications. I am confused however, in what Deepstream's actual role is.
The documentation for the core features (data-sync, records, auth, permissions, events, rpc, ...) is really well written, except that it is low level. I think a through high-level explantation of what Deepstream should be used as is missing.
My question is:
Would appreciate a detailed explanation of how developers should distinguish Deepstream and possibly any direction on how Deepstream should be incorporated in our applications.
Thanks.
Deepstream is a standalone server that’s installed like e.g. Nginx or any database. It’s available via yum/apt for most Linux distros as well as Windows and MacOS executable.
A deepstream server accepts client connections via TCP and WebSocket. Clients can connect to it via SDKs that are currently fully available for JS/Node & Java/Android and partially/soon available for IOs(Obj C/Swift), Python and .NET.
Deepstream provides three core concepts:
Data-sync: stateful and persistent JSON objects that can be manipulated in whole or in parts and are synchronized across all connected clients
Pub-Sub: many-to-many messaging based on subscriptions to topics
Request-Response: Question/Answer workflows
The server itself is configurable and uses permission files to validate incoming messages, but doesn’t hold any logic other than that. All logic is provided by “clients” which can be backend processes as well as end-users. Deepstream provides numerous features such as listening and active subscriptions to hook into what users request and provide/transform data accordingly as well as integrate and retrieve data from third party components or APIs.
This makes deepstream useful as both a realtime server for mobile/browser and desktop clients as well as a backbone for a microservice architecture
Deepstream can optionally be integrated with three types of systems:
Connectors are available for many popular systems, e.g. RethinkDB, MongoDB, Redis, AMQP, Kafka or ElasticSearch and can also easily be written yourself. This animation aims to provide an impression of how deepstream interacts with other systems
If no external system is specified, deepstream will run as a single node and store data in internal memory, but won't persist it to disk.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With