NATScaled : Distributed Services on TailScale Network

NATScaled : Distributed Services on TailScale Network

The End Product

Toy app running multiple NATS servers in a TailScale Network

The End Product

The aim of this toy app is to experiment with Tailscale (more on tailscale below). When we run the application (a binary actually), it will :

  1. Ask for person to login via Gmail/Microsoft/Tailscale
  2. Once logged in, will start a server
  3. Repeating Step 1 & 2 in multiple systems (located anywhere) with same login account will result in all those servers communicating securely with each other i.e, these servers will form a cluster.

Diagrammatically, after running it in three machines, it’d look something like this:

Image for post

Fig 1: Three NAT servers (machines) are connected to each other (peer-to-peer) using Tailscale. [Arrows are bi-directional but are drawn unidirectional for aesthetics]

Tech Stack:  Go,  TailScale,  NATS

Now lets try peeling this layer by layer

golang tailscale nats-streaming

What is Geek Coin

What is GeekCash, Geek Token

Best Visual Studio Code Themes of 2021

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Create a Golang Video Streaming Server Using HLS - A Tutorial - Qvault

Find out exactly how to create a Golang video streaming server using HLS with this easy tutorial! Format your media and build a server, step-by-step.

Spark Structured Streaming – Stateful Streaming

Spark Structured Streaming – Stateful Streaming. Welcome back folks to this blog series of Spark Structured Streaming. This blog is the continuation of the earlier blog "Internals of Structured Streaming".

NATS.io JetStream Stream Creation: Java Library

In this tutorial, we'll learn NATS.io JetStream Stream Creation: Java Library. JetStream allows you to persist streams of messages; you can start reading from the stream at a specific point in time or start at a specific message ...

Stateful stream processing with Apache Flink(part 1): An introduction

Apache Flink, a 4th generation Big Data processing framework provides robust stateful stream processing capabilities. So, Let's find out the article now. An extremely helpful article. You will definitely regret skipping it.

Hire Dedicated Golang Developers | Golang Web Development Company

Hire dedicated GoLang developers from WebClues Infotech to build applications using Go language. Get best GoLang developers for your web development projects.