Synadia, and NATS.io, were designed from the ground up for the new reality when all computing, applications and infrastructure are truly distributed. The company is funded by leading VCs and strategic investors including True Ventures, Bold Ventures, and Accenture. The team is fully distributed and globally available. Synadia’s diverse customer base ranges from Fortune 500 enterprises in finance, retail, healthcare and industrials, to innovative startups in fintech, industrial IoT, AI, gaming, and transportation.
This is huge. I'm not ready to use it yet, but will definitely use it when my system is in production. I have to figure most self-hosted nats clusters will do the same! I wonder if you'd consider some sort of free or cheap dev license, where we can get it connected to get it integrated into our workflows while developing our system, but it has severely limited message quotas or something like that so that we aren't freeloading off of it on a production system?
Thanks @nchomey! It may have not been clear, but since you are bringing your own NATS system, there are no limits imposed on the NATS side since you are paying for it/running it. BYON is about utilizing the capabilities noted in the video (blog post coming out shortly today). Is the ask more around "try-before-you-subscribe"?
@@SynadiaCommunications Thanks! Yes, its more a try-before-you-subscribe sort of thing. Or, more specifically, free while you get your architecture set up and then start paying for it once you have actual usage/traffic beyond just basic dev work. Sort of like you have for the hosted cloud offering!
This is very powerful, I like modular monoliths, spinning my API servers globally with nats included makes life so much simpler, comes with unified KV store, literally input one key on one API server it syncs in all. Life has never been easier.
This is my first time watching one of your videos. It’s one of the best tech overviews I’ve seen. I really enjoy the balance of concept and concrete example. Thanks!
Hey, were trying to build a product as a non-profit that operates in extremely internet sparse regions. So we do offline first with an upsync and some downsyncing to devices operating in the same project. I was wondering if nats would be a good solution here over GCP pub/sub?
What does it look like if I want to deploy an embedded NATS server in an autoscaling k8s environment? Is there a leader? How does the cluster get bootstrapped? My idea is that we'd autoscale the pods, and the leader would poll for work to be done, distributing work via a queue group
Is there a way to control when/if the server connects the leaf node connection. We have a use case that need to control when we connect to the back to sync data.
This is awesome. I've mainly been using embedded servers as a way to do local development and testing. I hadn't thought of using it to do offline-first applications. My thinking was: local -> embedded server production -> remote server Do you have more content on leaf nodes and their applications?
A while ago I had a issue up related to using embedded servers as part of a cluster. Didn’t manage to get it working but I’d be interested what a working setup could look like. Using a leaf node may even be the answer for me
Great video! This is the exact use case we have, but for our business model the price per leaf node connection in NGS is sadly not feasible. What would you suggest in this case?
I have been using embedded nats server for a couple of years now. It is one of the great features of nats. What I was missing was how to connect it to a nats cluster and your video answered my question very nicely. Thanks. It is a very powerful construct that can replace a lot of infrastructure setup and have microservices talk to each other in a clean transparent unified way. Thanks!!
My target design is effectively a blend of this and Natster where you end up with a peer-to-peer desktop application mesh of sorts. We'll see how that works out over the coming months.
Embedding lets you write software that scales from the small to the large. If you are writing a NATS-based API, your users can start with a single static binary, and move to HA with clustered+embedded, then scale out to externalized nats-server clusters. Giving people a way to try stuff out with minimal infra is a killer feature, imo. It's kind of like how Gitea (git server) or Prosody (xmpp srever) support sqlite. It's sufficient for small/medium deployments, and that's the proving ground for introducing new tech into your organization. Etcd supported embedding early on, too, and while it's hard to measure I think that partially accounts for its success.
I just found about NATS and your videos are helpful to understand the technology and get me started. I am working on a greenfield app using microservices architecture and writting an article/demo on NATS JetStream. I couldn't find anything on how to cover the following scenario: a stream for each microservice (for publishing) + a consumer for each microservice which aggregates messages from multiple streams based on subjects. The only possible way to maybe make it work appeared marked as legacy so I am not going to go forward with that. Would currently the recommended way be to use a single stream for everything + filter_subjects on consumers? I feel that this kind of kills the purpose of having multiple streams available for my scenario.
NATS is fully open source, not open core. Synadia cloud is a hosted version of NATS with some extra tooling around monitoring and management. So no strings attached here
Great videos, I have binging these lately. Good to see how nats has grown over the years. Can i suggest doing a video about implementing advanced messaging patterns such as workflow patterns like route slips and distributed transaction handling with compensations. It would be great to understand what the stream configuration will look like.