FAQ
General
What is NGS? What is Synadia Cloud?
NGS is a global, multi-cloud, multi-geo NATS.io service.
Synadia Cloud allows you to monitor and manage Streams, Consumers, Accounts, Users, Imports, Exports and more on NGS.
What is NATS.io?
NATS.io is the Open Source connective technology for Adaptive Edge & Distributed Systems that powers NGS. NGS is 100% NATS compatible with NATS maintainer supported client SDKs.
Synadia believes strongly in Open Source Software and has donated many engineering hours towards the NATS.io project.
How do I sign up for Synadia Cloud?
You can sign up for a Synadia Cloud at https://cloud.synadia.com.
How can I use the Synadia Cloud API?
Synadia Cloud provides a REST API for programmatic management of your resources. Here's how to use it:
-
Authentication: Generate a Personal Access Token and use it as a Bearer Token in your API requests.
-
API Documentation: View the complete API reference at API Docs. This interactive documentation allows you to:
- Browse available endpoints
- See request/response formats
- Try API calls directly from your browser
Tip: Set your Personal Access Token in the "HTTP Bearer" authentication section at /api-docs#auth, and all example curl commands in the API reference will automatically include your token, making them directly copy-pastable to your terminal.
-
Using the Go SDK: The Control Plane Go SDK provides a convenient way to interact with the API. Use the following settings to authenticate:
ctx := context.WithValue(context.Background(), syncp.ContextServerVariables, map[string]string{"baseUrl": "https://cloud.synadia.com",})ctx = context.WithValue(ctx, syncp.ContextAccessToken, "your-personal-access-token")
When I get the NATS server version in Synadia Cloud, sometimes I see it is a release candidate (RC) such as 2.10.15-RC.10? Why is this?
Synadia Cloud is a fully managed multi-tenant service and two top priorities are stability and availability. The team at Synadia are also the core maintainers and release managers of NATS.
When any issue is discovered and remediated in NATS, the team will prepare a patch RC and proactively deploy it to Synadia Cloud to minimize the impact of the issue to the service. The origin of the issue may be from a customer report, a security audit, or a bug reported in GitHub.
The RC goes through thorough testing and validation before it is deployed to Synadia Cloud. When the origin of issue was a customer report, the team will monitor the RC in the service to validate the issue has been remediated for the affected customer(s). Once the RC has been validated, it will be cut as a NATS final release and subsequently deployed to Synadia Cloud.
What are Synadia's security and operational practices?
See this page for more information.
NATS accounts and users
How does Synadia Cloud store and use NATS account and user keys?
Synadia Cloud encrypts all NATS Account and User keys using 256-bit encryption.
Root NATS Account Keys never leave the application.
Programmatic NATS Account Signing Keys are shown to the end-user once when they are Created, and once when they are Rotated. All other NATS Account Signing Keys never leave the application.
NATS User Keys are included in the Credentials File every time it is downloaded.
How can I import accounts and users from NSC?
The Synadia Control Plane CLI can be used to Import from NSC.
Imported Accounts must have limits set that fit into your Team's plan.
When using the Control Plane CLI, set the --server flag or set the SCP_SERVER environment variable to https://cloud.synadia.com.
Streams, key-value buckets, and object stores
How can I ensure my JetStream asset is pinned to a specific region or cloud provider?
When creating a stream, key-value store, or object store, you can specify the region and/or cloud provider where the asset will be pinned using placement tags.
If the asset it already created, you can edit the configuration and the asset will be moved without downtime to the new location.
Can I manage accounts and users created in Synadia Cloud with NSC?
No. Synadia Cloud only supports managing Accounts and Users that were created in Synadia Cloud with its UI and API.
Connecting
What client SDKs can I use?
Applications connecting to NGS use the Open Source NATS.io SDKs. Clients maintained by the NATS Authors should work with NGS. Other clients may work although there are no guarantees.
Any of the NATS Clients maintained
by the NATS authors should be compatible with NGS. Build a NATS application,
then simply use connect.ngs.global as the connect URL and provide your
NGS credentials to connect.
Example code can be found in each of the NATS client repositories.
If you wish to use a NATS client that does not support NATS 2.0 credentials, you can connect your application to a local NATS server extension (leaf node) connected to NGS.
What client and server versions are supported?
It depends on the client library, but most clients released in the last several months will be compatible. The NATS Server, running as as Extension Server (leaf node), is required to be at least version 2.8.0.
Are WebSockets supported?
Absolutely. Connect using the url: wss://connect.ngs.global:443 with a client
that supports websockets, or use NATS server extensions (leaf nodes) to connect
to NGS via websockets.
NGS Server Extensions (leaf nodes) support connecting to NGS via websockets as well.
Is MQTT supported?
It is through NATS server extensions (leaf nodes). You can run your own NATS server instance with MQTT enabled that is connected to NGS, and the server will forward any data onto NGS when there is interest (a stream, or consuming application). Check out the NATS MQTT documentation and Leaf node documentation.
Can I choose a particular cloud provider?
We advise connecting to connect.ngs.global to ensure a much higher level of
availability as NGS spans multiple cloud providers. By default, NGS will detect
your cloud provider (if applicable) and location to find the NGS cluster that is
best fit.
We do recognize that some customers need to use a particular cloud provider. We can provide this through connecting using a cloud provider connection endpoint and ensuring the proper JetStream placement tags are set. This may adversely affect uptime guarantees.
Accounts, plans, and usage
Can I create multiple accounts?
Yes, and you can share streams and services between them. We have plans to support building a SaaS system atop NGS with the ability to create very small accounts after signing up for an initial plan. In the meantime, if you need many smaller accounts contact us at info@synadia.com and we can set you up with a custom plan.
Can I create a custom plan?
Yes. If you need a plan that exceeds what is available today or wish to discuss options specific to your use case contact us at info@synadia.com and we can work with you to develop a custom plan that will meet your needs.
Are there limits beyond what I see in my plan?
Your unique NGS plan (or Free Plan) lets you define the most salient limits for NGS. There are some limits you may encounter such as # of subscriptions per connection, # of JetStream assets, and other various limits around usage, with the intent of protecting the system and your usage to avoid runaway applications incurring large bills. We feel these are high enough that most users will not be impacted, although if you do, contact us and we can increase them for you, most often free of charge.
How long will my free account last?
As long as you are using it! That said, we do reserve the right to delete inactive free accounts, remove accounts that violate the terms of service, and may move the location of storage in free accounts.
How can I determine my current NGS usage?
We have dashboards under development, but in the meantime use the NGS ngs.usage
endpoint with a duration to garner usage metrics for your account.
$ nats req ngs.usage 30d
10:56:22 Sending request on "ngs.usage"
10:56:22 Received with rtt 307.78088ms
{
"sent": {
"msgs": 4867323,
"bytes": 25527763676
},
"received": {
"msgs": 3952261,
"bytes": 9562117903
},
"sessions": 69828,
"stats_duration": "30d0h0m0s"
}
Security and data
Can Synadia access my data?
No. Synadia cannot see or access your data. There may be times when we need to help you debug and we will give you instructions how to create and share an extremely limited short lived set of credentials with us. We will also include instructions how to revoke those credentials and insist you do so immediately after they are no longer needed.
What happens if I lose my credentials?
Do your best to avoid this because we cannot recover private credentials that are lost. NGS will never access or store your private credentials, so you will need to cancel your account and create a new one. Contact us and we can find your public account credentials to assist you in you recreating a similar account.
We are planning an opt-in feature to allow customers to securely store private credentials in NGS.
How can I achieve GDPR compliance?
There are a few ways, one is through connecting to a regional connection endpoint and then if using JetStream ensure the proper placement tags are set.
GDPR compliance is not guaranteed with a free account.
Support
How do I ask questions or give feedback to Synadia
If you have commercial support the best place to do that is via your support plan. Alternatively you can create issues on the ngs-feedback repository or email us at info@synadia.com.
Migrating NGS accounts from app.ngs.global
NGS Accounts that were created on app.ngs.global will be migrated to Synadia Cloud starting on January 24, 2024. This will be a non-disruptive migration.
How will I know when my account has been migrated to Synadia Cloud?
We will email users after their account has been migrated to Synadia Cloud.
How can I prepare for the migration
Sign up for a Synadia Cloud account using the same email address that you used to sign up with on app.ngs.global. Once the migration has been completed, your app.ngs.global Accounts will appear in Synadia Cloud.
After my account has been migrated, will I still use NSC to manage it?
Yes. All accounts imported from app.ngs.global will still be managed using NSC until they are converted to Synadia Cloud management.
How do I convert my migrated account from NSC management to Synadia Cloud management
Use the Synadia Control Plane CLI to Import your account from NSC. When using the Control Plane CLI, set the --server flag or SCP_SERVER environment variable to https://cloud.synadia.com
Once an account is converted from NSC management to Synadia Cloud management, it cannot be changed back
I still have questions about the migration
Please ask questions in the #ngs channel of the nats.io Slack, or email them to ngs-migration@synadia.com