Skip to content

v0.20.0

Compare
Choose a tag to compare
@HeyItsJs HeyItsJs released this 05 Dec 08:38
· 463 commits to master since this release

This is a major release of Space Cloud that has tons of improvements and a few breaking changes.

Revamped eventing architecture

Space Cloud now uses a CDC (Change Data Capture) based eventing mechanism to capture database events reliably. Space Cloud uses Debezium and Redis under the hood to implement a reliable and performant eventing system.

Perks

  • Eventing works even for mutations made directly to the database from outside of Space Cloud.
  • All the previous limitations are gone. Events would be captured even if mutations are made without the primary key in the where clause or even if the primary key is not of type ID.
  • Stronger guarantees and reliability.

New data types

Thanks to the new eventing architecture, eventing is not tied to specific data types anymore. Hence, we have added a few data types that were asked for a lot of time:

  • Date
  • Time
  • Autoincrementing/Serial primary keys

More data types will be coming in the next releases.

Event-driven auto-scaling

We have added support for KEDA (Kubernetes Event-Driven Autoscaling) to Space Cloud. This means you can now autoscale your services based on:

  • Requests per second
  • Active requests
  • CPU consumption
  • Memory consumption
  • CRON schedule
  • Tons of other events (e.g. number of pending items in Kafka, SQL query output from Postgres, etc.), all thanks to KEDA!

Dropped Docker Support

As discussed and concluded in various community calls before, we have dropped the support for Docker as a target of the deployments module in Space Cloud. Space Cloud can now deploy services to Kubernetes only.

Dropping docker support would go a long way for us in developing and maintaining the deployments module. It would also help us to focus more on k8s and its ecosystem.

Caching module ⚡️

We have introduced a Redis based caching module in v0.20.0 that can cache responses from databases, ingress routes and remote services. It supports TTL based caching as well as instant invalidation.

Note: Caching is a part of our enterprise version.

Other notable enhancements

  • Conditional event triggers #1392
  • Support for configuring underlying database driver #1023
  • Default limit clause in every ready query #1338
  • Support for specifying kid in JWT secrets #1405
  • Support for overriding token claims in event triggers #1389
  • Added support for search in all resources in Mission Control

To see the complete list of enhancements/fixes, check out the v0.20.0 milestone.

Upgrade guide

Follow the steps to migrate from the previous versions to v0.20.0:

  • Backup your current config using space-cli version 0.19.X. (space-cli --project <project_id> get all /path/to/backup/dir)
  • Delete the existing SC setup using kubectl delete -f https://raw.githubusercontent.com/spaceuptech/space-cloud/v0.19.7/install-manifests/kubernetes/local/space-cloud.yaml
  • Download the latest space-cli. (Linux | Windows | Darwin). This latest space-cli should be used from now for the further operations.
  • Make sure kubectl is pointing to the right k8s cluster and run space-cli setup.
  • Apply the backup config using space-cli apply /path/to/backup/dir

Ping us on #general of our Discord server, if you face any issues while migrating.