# deepstreamio/deepstream.io

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/deepstreamio-deepstream-io).**

7,183 stars · 384 forks · TypeScript · MIT

## Links

- GitHub: https://github.com/deepstreamIO/deepstream.io
- Homepage: https://deepstreamio.github.io
- awesome-repositories: https://awesome-repositories.com/repository/deepstreamio-deepstream-io.md

## Topics

`authentication` `datasync` `deepstream` `permissions` `pubsub` `realtime` `rpc` `typescript` `websocket`

## Description

deepstream.io is an open-source realtime server that synchronizes JSON records, events, and remote procedure calls across clients and backend services. It functions as a realtime data sync server, event pub/sub server, record database server, and RPC server, all within a single platform. The server authenticates and authorizes every message using multiple strategies including JWT, HTTP, and file-based credentials, with a declarative permission language controlling access to records, events, and RPCs at a granular level.

The platform distinguishes itself through its combination of realtime data synchronization, topic-based pub/sub messaging, and remote procedure call orchestration in one integrated system. It supports atomic multi-path updates on JSON records, cross-client data sync, and a listen pattern that notifies backend services when clients subscribe to topics. The server runs on a single-threaded horizontal scaling model, allowing multiple independent nodes to distribute load across cloud instances, and supports plugin-based storage architecture for connecting to external databases and caches.

Beyond its core capabilities, deepstream.io provides online user presence tracking, connected client queries, and RPC request load balancing across multiple registered providers. It offers command-line configuration overrides and supports YAML or JSON configuration files. The server can be registered as a system service on init.d or systemd systems, and supports running multiple server instances on one machine with separate configurations.

## Tags

### Data & Databases

- [General-Purpose Realtime Servers](https://awesome-repositories.com/f/data-databases/client-server-data-synchronization/core-data-sync-servers/general-purpose-realtime-servers.md) — Synchronizes JSON records, events, and remote procedure calls across clients and backend services in real time.
- [Cross-Client Synchronization](https://awesome-repositories.com/f/data-databases/data-synchronization-configurations/sync-endpoint-configurations/cross-client-synchronization.md) — Keeps shared data records synchronized in real time across all connected clients. ([source](https://deepstreamio.github.io/docs/tutorials/core/datasync/records))
- [Realtime Document Synchronization](https://awesome-repositories.com/f/data-databases/data-synchronization-configurations/sync-endpoint-configurations/partial-synchronization/realtime-document-synchronization.md) — Keeps JSON records synchronized across all connected clients and backend services in real time.
- [Realtime Synchronizations](https://awesome-repositories.com/f/data-databases/json-document-storage/realtime-synchronizations.md) — Synchronizes editable JSON records across all connected clients with caching and storage. ([source](https://deepstreamio.github.io/))
- [Realtime Synchronizations](https://awesome-repositories.com/f/data-databases/json-document-stores/json-object-persistence/realtime-synchronizations.md) — Propagates partial or full JSON changes instantly to keep all clients consistent. ([source](https://deepstreamio.github.io/docs/tutorials/concepts/what-is-deepstream))
- [Realtime Synchronization](https://awesome-repositories.com/f/data-databases/optimistic-update-management/realtime-synchronization.md) — Keeps JSON records and state synchronized across all connected clients and backend services in real time.
- [Realtime Document Database Servers](https://awesome-repositories.com/f/data-databases/optimistic-update-management/realtime-synchronization/realtime-document-database-servers.md) — Persists and synchronizes JSON documents across connected clients with caching, storage, and atomic updates.
- [Nested Path Reads and Writes](https://awesome-repositories.com/f/data-databases/structured-data-records/nested-path-reads-and-writes.md) — Sets, gets, and subscribes to changes on full records or specific nested JSON paths. ([source](https://deepstreamio.github.io/docs/tutorials/core/datasync/records))
- [Atomic Multi-Path Updates](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/connection-transaction-management/atomic-transactions/atomic-transactional-commits/atomic-version-updates/atomic-multi-path-updates.md) — Applies several changes to different parts of a record in a single atomic operation. ([source](https://deepstreamio.github.io/docs/tutorials/core/datasync/records))
- [External Storage Integrations](https://awesome-repositories.com/f/data-databases/external-storage-integrations.md) — Connects to external databases and caches for persistent storage and fast short-term data access.
- [Database Backend Integration](https://awesome-repositories.com/f/data-databases/external-storage-integrations/database-backend-integration.md) — Connects to external databases for persistent storage and querying of records. ([source](https://deepstreamio.github.io/docs/tutorials/concepts/what-is-deepstream))
- [Single-Threaded](https://awesome-repositories.com/f/data-databases/horizontal-scaling/single-threaded.md) — Runs multiple independent single-threaded nodes that distribute load across cloud instances.

### Development Tools & Productivity

- [Realtime List Synchronizations](https://awesome-repositories.com/f/development-tools-productivity/local-file-syncing/user-data-syncing-utilities/realtime-list-synchronizations.md) — Synchronizes data across all connected clients and backend services as changes occur in real time. ([source](https://cdn.jsdelivr.net/gh/deepstreamio/deepstream.io@master/README.md))

### DevOps & Infrastructure

- [Realtime Client Connections](https://awesome-repositories.com/f/devops-infrastructure/cloud-infrastructure/cloud-computing-serverless/backend-as-a-service/authentication-as-a-service/realtime-client-connections.md) — Ships a client library for authenticating browser-based connections to the realtime server. ([source](https://deepstreamio.github.io/docs/tutorials/getting-started/javascript))
- [Horizontal Scaling Deployments](https://awesome-repositories.com/f/devops-infrastructure/high-availability-deployments/horizontal-scaling-deployments.md) — Runs multiple single-threaded server nodes that distribute load across cloud instances. ([source](https://deepstreamio.github.io/docs/tutorials/concepts/what-is-deepstream))

### Networking & Communication

- [Publish-Subscribe Messaging](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/messaging-services/message-broker-infrastructure/publish-subscribe-messaging.md) — Routes topic-based messages from any sender to all subscribers with automatic data serialization. ([source](https://cdn.jsdelivr.net/gh/deepstreamio/deepstream.io@master/README.md))
- [Realtime Messaging Providers](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/messaging-services/notification-delivery-services/realtime-messaging-providers.md) — Delivers messages instantly between clients and servers without polling for live communication. ([source](https://deepstreamio.github.io/docs/docs))
- [Pub-Sub Messaging](https://awesome-repositories.com/f/networking-communication/pub-sub-messaging.md) — Routes topic-based messages from any sender to all subscribers with automatic serialization.
- [General-Purpose Pub/Sub Servers](https://awesome-repositories.com/f/networking-communication/pub-sub-messaging/sharded-pub-sub/general-purpose-pub-sub-servers.md) — Routes topic-based messages from any publisher to all subscribers with automatic serialization and delivery.
- [Remote Procedure Calls](https://awesome-repositories.com/f/networking-communication/remote-procedure-calls.md) — Invokes named functions on remote clients or servers and returns results to coordinate distributed actions.
- [RPC Servers](https://awesome-repositories.com/f/networking-communication/rpc-servers.md) — Routes remote procedure calls between clients and backend processes for request/response workflows.
- [Application-Level Request Distributors](https://awesome-repositories.com/f/networking-communication/load-balancing/application-level-request-distributors.md) — Balances RPC invocations across multiple registered providers with automatic failover to alternatives. ([source](https://deepstreamio.github.io/docs/tutorials/core/request-response/rpc))
- [Subscription Listeners](https://awesome-repositories.com/f/networking-communication/messaging-api-integrations/topic-message-listeners/topic-routing-patterns/subscription-listeners.md) — Implements a listen pattern that notifies backend services when clients subscribe to topics.
- [Subscription-Activated Data Streams](https://awesome-repositories.com/f/networking-communication/subscription-activated-data-streams.md) — Notifies backend services when clients subscribe to topics to start streaming live data. ([source](https://deepstreamio.github.io/))

### Security & Cryptography

- [Authentication and Authorization](https://awesome-repositories.com/f/security-cryptography/authentication-and-authorization.md) — Combines multiple authentication mechanisms with a declarative permission language for granular access control. ([source](https://cdn.jsdelivr.net/gh/deepstreamio/deepstream.io@master/README.md))
- [Per-Message Authorizations](https://awesome-repositories.com/f/security-cryptography/authentication-and-authorization/per-message-authorizations.md) — Validates user identity and permissions on each individual message, from the connection down to the data payload. ([source](https://deepstreamio.github.io/))
- [Credential Authentication](https://awesome-repositories.com/f/security-cryptography/authentication-clients/credential-authentication.md) — Validates client credentials against one of several configurable authentication strategies before granting access. ([source](https://deepstreamio.github.io/docs/tutorials/concepts/what-is-deepstream))
- [Authentication Gateways](https://awesome-repositories.com/f/security-cryptography/authentication-gateways.md) — Authenticates and authorizes every message using multiple strategies including JWT, HTTP, and file-based credentials.
- [RPC](https://awesome-repositories.com/f/security-cryptography/authentication-providers/provider-registries/rpc.md) — Routes function invocations from requesting clients to registered provider processes and returns results.
- [Action-Based Access Restrictions](https://awesome-repositories.com/f/security-cryptography/domain-access-restrictions/request-access-restrictions/resource-access-restrictions/action-based-access-restrictions.md) — Controls which users can create, read, write, delete, or listen to specific records based on user attributes. ([source](https://deepstreamio.github.io/docs/tutorials/core/permission/valve-introduction))
- [Declarative Permission Modelers](https://awesome-repositories.com/f/security-cryptography/domain-based-access-controls/domain-scoped-permissions/declarative-permission-modelers.md) — Uses a declarative permission language to control access to records, events, and RPCs.
- [Granular Permission Systems](https://awesome-repositories.com/f/security-cryptography/granular-permission-systems.md) — Uses a declarative permission language to control which user can read, write, or invoke each record, event, or RPC. ([source](https://deepstreamio.github.io/docs/tutorials/concepts/what-is-deepstream))
- [Authentication Strategies](https://awesome-repositories.com/f/security-cryptography/identity-access-management/authentication-strategies.md) — Validates incoming connections against one or more authentication mechanisms in declared order until one succeeds. ([source](https://deepstreamio.github.io/docs/tutorials/core/auth/auth-introduction))
- [Authentication Pipelines](https://awesome-repositories.com/f/security-cryptography/multi-factor-authentication-strategies/authentication-pipelines.md) — Validates client credentials against multiple configurable authentication mechanisms in declared order.
- [JSON Web Tokens](https://awesome-repositories.com/f/security-cryptography/json-web-tokens.md) — Verifies client identity by decoding and validating a signed JWT presented at connection time. ([source](https://deepstreamio.github.io/docs/tutorials/core/auth/auth-introduction))
- [TLS Traffic Encryption](https://awesome-repositories.com/f/security-cryptography/tls-traffic-encryption.md) — Secures all traffic between clients and the server using TLS/SSL encryption. ([source](https://deepstreamio.github.io/docs/tutorials/concepts/what-is-deepstream))

### Software Engineering & Architecture

- [Event Driven Messaging](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-messaging.md) — Routes topic-based messages from any sender to all subscribers with automatic serialization.
- [Remote Procedure Calls](https://awesome-repositories.com/f/software-engineering-architecture/remote-procedure-calls.md) — Provides a remote procedure call mechanism for invoking backend functions from clients. ([source](https://deepstreamio.github.io/docs/tutorials/core/request-response/rpc))
- [Pluggable Storage Backends](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures/plugin-based-architectures/pluggable-storage-backends.md) — Supports plugin-based storage architecture for connecting to external databases and caches.

### Web Development

- [Data Validation](https://awesome-repositories.com/f/web-development/data-validation.md) — Checks new or modified data against user-defined expressions before allowing a write operation to proceed. ([source](https://deepstreamio.github.io/docs/tutorials/core/permission/valve-introduction))
