Continuum
Summary
The continuum is where your data is conceptually stored. It doesn’t exist physically. It’s actually just a collection of storage hubs and capsules that are logically bonded together. There are no servers in a continuum; each Cosnim instance running in workstations, application servers, cloud instances, or containers accesses the continuum directly through the individual storage hubs and the capsules they contain.
Creating a continuum
When you “create” a continuum, as you did in the Quick Start guide with the cosnim create
continuum command, this creates a special capsule in each configured storage hub to bind them
together. This is one of the ways Cosnim
holds a continuum together.
Expanding a continuum with new hubs
If you reconfigure and add new storage hubs to a continuum, you must run the cosnim expand
continuum. This creates additional special capsules in the new hubs to bind them with the others already in the continuum.
You must restart the Cosnim instance(s) to use the new hubs.
Removing existing hubs
You can remove a storage hub from a continuum anytime simply by removing it from the configuration.
Of course, you’ll also need to make sure that the capsules it contains have already been migrated or
replicated to other hubs, for example, by using the cosnim drain hub command,
but this is the only thing you need to do.
Deleting a continuum
To delete a continuum, you only need to delete the hubs’ physical storage. This also destroys the capsules, which inherently destroys the continuum itself.
Depending on the hubs you use and how you configured them, this may involve deleting a bucket, a filesystem, a database, or deleting all objects, files or database records under a given ‘prefix’ and ‘namespace’ that you configured. This is the only intervention you need to perform to destroy a continuum physically.
Continuum UUID
Each continuum is assigned a unique UUID, stored directly in the special capsule created in the storage hubs when you create or expand a continuum. The UUID helps to ensure you don’t mix up hubs and capsules belonging to other continuums.
You can see a continuum’s UUID with the command cosnim show continuum. But other than this
command, you won’t see or manipulate continuum UUIDs as they are used mainly by the Cosnim core
engine to manage your data.
Configuration
The continuum is configured in the ‘continuum’ section of the configuration file. See the Configuration Reference for all configuration parameters. There are two key components to configure in this section:
Primary Storage Hub
You need to configure one primary storage hub to indicate to Cosnim where the capsules will be stored. The primary hub is usually just a structural hub, such as a typed hub, that leverages other hubs to distribute, scatter and organize capsules in different storage locations. See the following section for details.
Keychain
You need to provide the location of the keychain file. The keychain is essential for Cosnim’s operation. It contains, among other things, an encryption key block that is used for capsule encryption and distributed authentication. Without a primary encryption key block, you cannot access your data. See the following section for details.
Operation
The continuum operates entirely from the software running on your server, workstation, container or cloud instance.
Each cosnim command you run connects directly to the storage hubs and reads/writes capsules to serve your requests.
This is how Cosnim runs, even when sharing continuums with other users.
Relays and Gateways
In enterprise and distributed environments, you might also be using relays and gateways to which each Cosnim instance will also connect to. Relays and gateways are optional and supplemental; although they accelerate or coordinate some operations, they don’t manage the continuum itself - this is always managed by each Cosnim instance, whether or not relays or gateways are used.