MigratoryData Platform is built around the following key concepts:

Subject — A pub/sub topic of the MigratoryData server. Clients publish and subscribe to subjects to exchange real-time messages.

API (or Streaming API)— A collection of real-time pub/sub endpoints, each backed by a Subject. It is the real-time counterpart to a traditional REST API, exposing pub/sub endpoints rather than GET/POST endpoints.

API Hub — Public catalog of Streaming APIs. Developers browse, discover, and adopt Streaming APIs from here for their real-time apps.

Developer Portal — Where developers create Apps, adopt Streaming APIs, generate Access Tokens, and test adopted Streaming APIs in a live console.

App — A client real-time application. Adopts one or more Streaming APIs and holds Access Tokens.

Access Token — A JWT credential signed with a Signing Key, scoped to an App and a set of Streaming APIs. Passed by clients when connecting to the Server.

Signing Key — A cryptographic secret created in the Portal to sign Access Tokens, and shared with Gateways to verify them.

AsyncAPI — Industry-standard specification used by Portal to document Streaming APIs (the real-time equivalent of OpenAPI).

User — A person who has a Role that determines what they can do in the Portal. Users can share Apps and APIs with other users.

Role — Determines what a User can do in the Portal. Available roles are Administrator (full control), API Provider (creates and publishes Streaming APIs), and API Consumer (discovers and adopts Streaming APIs into Apps).

Gateway — Portal’s term for a MigratoryData server it manages. One Portal can manage a cluster of one or more Gateways. The Portal can be used to monitor configuration, logs, and metrics for each Gateway.

Client — A language-specific MigratoryData SDK (Java, Node.js, Android, iOS, C#, C++, Python, PHP, and more) used to connect to a Gateway, authenticate with an Access Token, and publish or subscribe to the APIs’ endpoints. The Portal generates a ready-to-run code snippet for each supported language.