Skip to main content

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, laptops and a multitude of other resources running simultaneously in all of the major cloud providers. The best part? It is all visible and manageable as a single, flat topology.

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

Super Constellations in development

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 the ways we can configure and shape our network traffic. During the open beta 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 to install the appropriate language toolchain.

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, 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).

Starting wasmCloud hosts

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.