Skip to main content

Using Super Constellations

When you first log into Cosmonic, you will be given your own constellation, which is a managed, isolated network space where you can deploy your applications. Everything running within a super constellation appears on your infrastructure or logic view on your canvas, no matter where it's running. You could have Raspberry Pis and laptops and resources running in all of the major cloud providers, and it will all be visible and manageable as a single flat topology.

A super constellation is simply a larger constellation formed by securely connecting multiple environments through Cosmonic.

info

This user guide refers to the use of super constellations on developer workstations as part of a developer loop. Please contact us for instructions on how to extend a super constellation to long-running infrastructure like your data center or cloud.

Under the hood, super constellations are powered by NATS leaf nodes. This gives us near infinite flexibility in configuration and shaping our network traffic. During the developer preview we are limiting the number of leaf nodes per account, so you may not want to leave a bunch of them running all the time.

The following image is a diagram that illustrates how a super constellation can be formed from smaller, securely connected components. Super Constellation diagram

Pre-Requisites

The only thing you'll need in order to extend your constellation beyond the boundaries of the Cosmonic infrastructure is the cosmo CLI. If you want to build and deploy actors in your constellation, you'll also need the appropriate language toolchain installed.

Joining your Super Constellation

You'll find that joining your super constellation is incredibly simple. All you have to do is run cosmo up. If your CLI hasn't yet logged in, then you will see a URL (which should automatically open in your default browser) that takes you to a quick login page. Once logged in, cosmo up will do the following:

  • Download a NATS server if it hasn't yet done so
  • Download a wasmCloud host if it hasn't yet done so
  • Start a local NATS server configured as a leaf node connecting to Cosmonic
  • Start a wasmCloud host pre-configured to work with the freshly started leaf node

If you have your Cosmonic constellation infrastructure view open as you type cosmo up, you'll see a new host quickly appear. You'll know it's your host and not ours because it will have the stargate=true label. Note that this label is just for your information and no Cosmonic code relies on this (nor should yours).

caution

wasmCloud hosts started without using cosmo may appear to work properly with the leaf node, but will not work with the super constellation at large. This is because hosts configured to work in a super constellation are given specific cluster key configurations and other security parameters that aren't wasmCloud defaults.

You should assume that only hosts started via cosmo will work properly with a super constellation.

Developing in a Super Constellation

Developing in a super constellation is almost exactly the same as purely local development. Every actor you deploy locally has access to all of the capability providers running locally, in Cosmonic, or in other infrastructure you've connected. You don't need to run any proxies, open any firewall ports, connect to any bastion hosts. Just develop your app.

In fact, many of our own stress tests and demos involve securely connecting to a constellation via hotel or cafe WiFi.

A Note on the wash CLI

You'll need to take into account additional latency when working with some wash commands. For example, if you're performing an auction across all hosts in a super constellation and many of those hosts are multiple hops away, you might want to make sure you're using a high enough timeout option.