Is a specification, protocol, and reference implementation for providing distributed state management patterns suitable for Serverless computing. The current supported and envisioned patterns include:
- Event Sourcing
- Conflict-Free Replicated Data Types (CRDTs)
- Key-Value storage
- P2P messaging
- CQRS read side projections
CloudState is polyglot, which means that services can be written in any language that supports gRPC, and with language specific libraries provided that allow idiomatic use of the patterns in each language. CloudState can be used either by itself, in combination with a Service Mesh, or it is in envisioned that it will be integrated with other Serverless technologies such as Knative.
Read more about the design, architecture, techniques, and technologies behind CloudState in the documentation.
CloudState CLI
Is a lightweight, fast, opinative, community driven and fun client that lets you go from zero to production with Cloudstate Stateful Serveless functions in minutes. Cloudstate CLI provides:
- Simple command API.
- Autocomplete support.
- Whole life cycle for creating and running your CLI managed Serveless Function.
- Uncoupled. At any point in your project you can stop using the CLI and use other tools like 'kubectl'.
CloudState CLI relies on a number of command line tools such as:
- Curl
- Docker
- Minikube (for tests)
- Language specific build tools like maven for Java, Cargo for Rust, etc..
[cloudstate]# curl https://raw.githubusercontent.com/sleipnir/cloudstate-cli/master/bin/cloudstate-installer.sh | sh -
In Mac OSX environments in addition to the script method you can use Homebrew installation:
[cloudstate]# brew tap sleipnir/cloudstate-cli [cloudstate]# brew install sleipnir/cloudstate-cli/cloudstate-cli
Note: The brew installation method so far does not provide shell completions capabilities.
[cloudstate]# cloudstate --help
cloudstate 0.5.4
Adriano Santos <sleipnir@bsd.com.br>
CloudState CLI
USAGE:
cloudstate [FLAGS] [SUBCOMMAND]
FLAGS:
--check Test dependencies
-h, --help Prints help information
-l, --list-profiles List all profiles supported
--upgrade Update CloudState CLI version
-V, --version Prints version information
SUBCOMMANDS:
build Build project with template specified. Requires path. Example. cloudstate build --path=.
completions Generates completion scripts for your shell
create Create a new user function project from template. Example. cloudstate create --name=shopping-cart --profile=java --registry=docker.io --tag=1.0.1
deploy Deploy user function with CloudState sidecar in K8s environment
destroy Destroy CloudState namespace and others resources
help Prints this message or the help of the given subcommand(s)
init Initialize a CloudState k8s namespace/operator
logs Show application logs
provision Shortcut to build, push and deploy. Example. cloudstate provision -p . -t 1.0.1 -n production
run Running user function & cloudstate proxy in Docker for tests purposes
scale Scale a user function
Or in Specific Command
[cloudstate]# cloudstate run --help
cloudstate-run
Running user function & cloudstate proxy in Docker for tests purposes
USAGE:
cloudstate run [FLAGS] [OPTIONS]
FLAGS:
-h, --help Prints help information
-o, --only-proxy Running only Proxy (dev mode). Sharing the host network
-s, --show Shows the command that would be executed manually
-V, --version Prints version information
OPTIONS:
-I, --function-image <function-image> Run the user-function with the container selected image.
-u, --user-function-port <function-port> Indicates to the Proxy which port is the user function so that it can communicate
-i, --proxy-image <proxy-image> Run the proxy with the container selected image. Default is 'cloudstateio/cloudstate-proxy-native-dev-mode:latest'
-p, --proxy-port <proxy-port> Proxy exposed port. Default is 9000
Check System Dependencies
[cloudstate]# cloudstate --check
β Dependency Docker OK!
β Dependency Kubectl OK!
β Dependency Minikube OK!
β Dependency Dotnet OK!
β Dependency Go OK!
β Dependency Java OK!
β Dependency Mvn OK!
β Dependency Npm OK!
β Dependency Python OK!
β Dependency Cargo OK!
β Dependency Sbt not found in system path. If you use Scala please proceed to install it.
Ok(())
[cloudstate]#
Initialize CloudState Operator:
[cloudstate]# cloudstate init
π Creating CloudState namespace...
π» Success on create CloudState namespace
π Initializing CloudState operator...
namespace/cloudstate created
customresourcedefinition.apiextensions.k8s.io/statefulstores.cloudstate.io unchanged
customresourcedefinition.apiextensions.k8s.io/statefulservices.cloudstate.io unchanged
serviceaccount/cloudstate-operator created
configmap/cloudstate-operator-config created
role.rbac.authorization.k8s.io/cloudstate-operator-config-reader created
rolebinding.rbac.authorization.k8s.io/cloudstate-operator-config-reader-binding created
clusterrole.rbac.authorization.k8s.io/cloudstate-operator-role unchanged
clusterrolebinding.rbac.authorization.k8s.io/cloudstate-operator unchanged
π Success on installing CloudState operator
Ok(())
[cloudstate]#
Create User Function Project from specific profile:
[cloudstate]# cloudstate create \
--name=shopping-cart \
--profile=java \
--registry=docker.io/sleipnir \
--set-user=sleipnir \
--set-pass=***** \
--tag=1.0.1 \
--set-editor=idea
Creating user function project: "shopping-cart"
Using profile: "java"
Extracting profile template.... /root/.cloudstate/templates/java/java.tar.gz
Downloading and install dependencies...
[INFO] Scanning for projects...
.....
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.489 s
[INFO] Finished at: 2019-10-31T18:16:33-03:00
[INFO] ------------------------------------------------------------------------
Compiling project...
Project successfully compiled
Project created!
Open editor!
total 8
drwxrwxr-x. 4 root root 30 Out 31 18:16 src
-rw-rw-r--. 1 root root 3252 Out 31 18:16 pom.xml
-rw-rw-r--. 1 root root 304 Out 31 18:16 deployment.yml
drwxrwxr-x. 8 root root 168 Out 31 18:16 target
Ok(())
[cloudstate]#
Build function:
[shopping-cart]# cloudstate build -p .
Application { name: "shopping-cart", tag: "1.0.1", home_dir: "/root/.cloudstate", work_dir: "/home/sleipnir/development/workspace/pessoal/cloudstate-cli/cloudstate/shopping-cart", user_dir: "/home/sleipnir/development/workspace/pessoal/cloudstate-cli/cloudstate/shopping-cart/.cloudstate", profile: "java", namespace: "cloudstate", repo: "docker.io/sleipnir/shopping-cart", repo_user: "sleipnir", repo_pass: "bsd*a211003", editor: "idea", data_store: "InMemory", port: 8088 }
Building Project...
[INFO] Scanning for projects...
[WARNING] [WARNING] Some problems were encountered while building the effective model for com.example:shopping-cart:jar:1.0.1
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 37, column 21
[WARNING] [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] [WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] [INFO] ------------------------------------------------------------------------
[INFO] Detecting the operating system and CPU architecture
[INFO] ------------------------------------------------------------------------
[INFO] os.detected.name: linux
[INFO] os.detected.arch: x86_64
[INFO] os.detected.version: 3.10
[INFO] os.detected.version.major: 3
[INFO] os.detected.version.minor: 10
[INFO] os.detected.release: centos
[INFO] os.detected.release.version: 7
[INFO] os.detected.release.like.centos: true
[INFO] os.detected.release.like.rhel: true
[INFO] os.detected.release.like.fedora: true
[INFO] os.detected.classifier: linux-x86_64
[INFO] [INFO] ---------------------< com.example:shopping-cart >----------------------
[INFO] Building shopping-cart 1.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] [INFO] --- protobuf-maven-plugin:0.6.1:compile (default) @ shopping-cart ---
[INFO] Compiling 2 proto file(s) to /home/sleipnir/development/workspace/pessoal/cloudstate-cli/cloudstate/shopping-cart/target/generated-sources/protobuf/java
[WARNING] PROTOC: example/shoppingcart/shoppingcart.proto:7:1: warning: Import google/api/http.proto but not used.
[libprotobuf WARNING ../../../../../src/google/protobuf/compiler/java/java_file.cc:231] example/shoppingcart/shoppingcart.proto: The file's outer class name, "Shoppingcart", matches the name of one of the types declared inside it when case is ignored. This can cause compilation issues on Windows / MacOS. Please either rename the type or use the java_outer_classname option to specify a different outer class name for the .proto file to be safe.
[INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ shopping-cart ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 2 resources
[INFO] Copying 2 resources
[INFO] [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ shopping-cart ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 4 source files to /home/sleipnir/development/workspace/pessoal/cloudstate-cli/cloudstate/shopping-cart/target/classes
[INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ shopping-cart ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/sleipnir/development/workspace/pessoal/cloudstate-cli/cloudstate/shopping-cart/src/test/resources
[INFO] [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ shopping-cart ---
[INFO] Nothing to compile - all classes are up to date
[INFO] [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ shopping-cart ---
[INFO] No tests to run.
[INFO] [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ shopping-cart ---
[INFO] Building jar: /home/sleipnir/development/workspace/pessoal/cloudstate-cli/cloudstate/shopping-cart/target/shopping-cart-1.0.1.jar
[INFO] [INFO] --- maven-install-plugin:2.4:install (default-install) @ shopping-cart ---
[INFO] Installing /home/sleipnir/development/workspace/pessoal/cloudstate-cli/cloudstate/shopping-cart/target/shopping-cart-1.0.1.jar to /root/.m2/repository/com/example/shopping-cart/1.0.1/shopping-cart-1.0.1.jar
[INFO] Installing /home/sleipnir/development/workspace/pessoal/cloudstate-cli/cloudstate/shopping-cart/pom.xml to /root/.m2/repository/com/example/shopping-cart/1.0.1/shopping-cart-1.0.1.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.763 s
[INFO] Finished at: 2019-10-31T18:49:45-03:00
[INFO] ------------------------------------------------------------------------
Compiling project...
Project successfully compiled
Ok(())
[cloudstate]#
Or Build and Deploy function:
[cloudstate]# cloudstate build \
--path=shopping-cart \
--tag=1.0.1 \
--push && \
cloudstate deploy --namespace=cloudstate
Application { name: "shopping-cart", tag: "1.0.1", home_dir: "/root/.cloudstate", work_dir: "/home/sleipnir/development/workspace/pessoal/cloudstate-cli/cloudstate/shopping-cart", user_dir: "/home/sleipnir/development/workspace/pessoal/cloudstate-cli/cloudstate/shopping-cart/.cloudstate", profile: "java", namespace: "cloudstate", repo: "docker.io/sleipnir/shopping-cart", repo_user: "sleipnir", repo_pass: "bsd*a211003", editor: "idea", data_store: "InMemory", port: 8088 }
Building Project...
[INFO] Scanning for projects...
[WARNING] [WARNING] Some problems were encountered while building the effective model for com.example:shopping-cart:jar:1.0.1
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 37, column 21
[WARNING] [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] [WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] [INFO] ------------------------------------------------------------------------
[INFO] Detecting the operating system and CPU architecture
[INFO] ------------------------------------------------------------------------
[INFO] os.detected.name: linux
[INFO] os.detected.arch: x86_64
[INFO] os.detected.version: 3.10
[INFO] os.detected.version.major: 3
[INFO] os.detected.version.minor: 10
[INFO] os.detected.release: centos
[INFO] os.detected.release.version: 7
[INFO] os.detected.release.like.centos: true
[INFO] os.detected.release.like.rhel: true
[INFO] os.detected.release.like.fedora: true
[INFO] os.detected.classifier: linux-x86_64
[INFO] [INFO] ---------------------< com.example:shopping-cart >----------------------
[INFO] Building shopping-cart 1.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] [INFO] --- protobuf-maven-plugin:0.6.1:compile (default) @ shopping-cart ---
[INFO] Compiling 2 proto file(s) to /home/sleipnir/development/workspace/pessoal/cloudstate-cli/cloudstate/shopping-cart/target/generated-sources/protobuf/java
[WARNING] PROTOC: example/shoppingcart/shoppingcart.proto:7:1: warning: Import google/api/http.proto but not used.
[libprotobuf WARNING ../../../../../src/google/protobuf/compiler/java/java_file.cc:231] example/shoppingcart/shoppingcart.proto: The file's outer class name, "Shoppingcart", matches the name of one of the types declared inside it when case is ignored. This can cause compilation issues on Windows / MacOS. Please either rename the type or use the java_outer_classname option to specify a different outer class name for the .proto file to be safe.
[INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ shopping-cart ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 2 resources
[INFO] Copying 2 resources
[INFO] [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ shopping-cart ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 4 source files to /home/sleipnir/development/workspace/pessoal/cloudstate-cli/cloudstate/shopping-cart/target/classes
[INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ shopping-cart ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/sleipnir/development/workspace/pessoal/cloudstate-cli/cloudstate/shopping-cart/src/test/resources
[INFO] [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ shopping-cart ---
[INFO] Nothing to compile - all classes are up to date
[INFO] [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ shopping-cart ---
[INFO] No tests to run.
[INFO] [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ shopping-cart ---
[INFO] Building jar: /home/sleipnir/development/workspace/pessoal/cloudstate-cli/cloudstate/shopping-cart/target/shopping-cart-1.0.1.jar
[INFO] [INFO] --- maven-install-plugin:2.4:install (default-install) @ shopping-cart ---
[INFO] Installing /home/sleipnir/development/workspace/pessoal/cloudstate-cli/cloudstate/shopping-cart/target/shopping-cart-1.0.1.jar to /root/.m2/repository/com/example/shopping-cart/1.0.1/shopping-cart-1.0.1.jar
[INFO] Installing /home/sleipnir/development/workspace/pessoal/cloudstate-cli/cloudstate/shopping-cart/pom.xml to /root/.m2/repository/com/example/shopping-cart/1.0.1/shopping-cart-1.0.1.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.179 s
[INFO] Finished at: 2019-10-31T18:51:33-03:00
[INFO] ------------------------------------------------------------------------
Compiling project...
Project successfully compiled
Ok("/home/sleipnir/development/workspace/pessoal/cloudstate-cli/cloudstate/shopping-cart")
Path -> /home/sleipnir/development/workspace/pessoal/cloudstate-cli/cloudstate/shopping-cart/.cloudstate/user.json
Application { name: "shopping-cart", tag: "1.0.1", home_dir: "/root/.cloudstate", work_dir: "/home/sleipnir/development/workspace/pessoal/cloudstate-cli/cloudstate/shopping-cart", user_dir: "/home/sleipnir/development/workspace/pessoal/cloudstate-cli/cloudstate/shopping-cart/.cloudstate", profile: "java", namespace: "cloudstate", repo: "docker.io/sleipnir/shopping-cart", repo_user: "sleipnir", repo_pass: "bsd*a211003", editor: "idea", data_store: "InMemory", port: 8088 }
[INFO] Scanning for projects...
[WARNING] [WARNING] Some problems were encountered while building the effective model for com.example:shopping-cart:jar:1.0.1
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 37, column 21
[WARNING] [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] [WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] [INFO] ------------------------------------------------------------------------
[INFO] Detecting the operating system and CPU architecture
[INFO] ------------------------------------------------------------------------
[INFO] os.detected.name: linux
[INFO] os.detected.arch: x86_64
[INFO] os.detected.version: 3.10
[INFO] os.detected.version.major: 3
[INFO] os.detected.version.minor: 10
[INFO] os.detected.release: centos
[INFO] os.detected.release.version: 7
[INFO] os.detected.release.like.centos: true
[INFO] os.detected.release.like.rhel: true
[INFO] os.detected.release.like.fedora: true
[INFO] os.detected.classifier: linux-x86_64
[INFO] [INFO] ---------------------< com.example:shopping-cart >----------------------
[INFO] Building shopping-cart 1.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] [INFO] --- jib-maven-plugin:1.7.0:build (default-cli) @ shopping-cart ---
[INFO] [INFO] Containerizing application to sleipnir/shopping-cart, sleipnir/shopping-cart:1.0.1...
[WARNING] Base image 'gcr.io/distroless/java:8' does not use a specific image digest - build may not be reproducible
[INFO] Using base image with digest: sha256:a13ac1ce516ec5e49ae9dfd3b8183e9e8328180a65757d454e594a9ce6d1e35d
[INFO] [INFO] Container entrypoint set to [java, -XX:+UseG1GC, -XX:+UseStringDeduplication, -cp, /app/resources:/app/classes:/app/libs/*, com.example.Main]
[INFO] [INFO] Built and pushed image as sleipnir/shopping-cart, sleipnir/shopping-cart:1.0.1
[INFO] Executing tasks:
[INFO] [=========================== ] 90,0% complete
[INFO] > launching layer pushers
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.165 s
[INFO] Finished at: 2019-10-31T18:51:44-03:00
[INFO] ------------------------------------------------------------------------
Push container image...
Pushed!
Ok("/home/sleipnir/development/workspace/pessoal/cloudstate-cli/cloudstate/shopping-cart")
Application { name: "shopping-cart", tag: "1.0.1", home_dir: "/root/.cloudstate", work_dir: "/home/sleipnir/development/workspace/pessoal/cloudstate-cli/cloudstate/shopping-cart", user_dir: "/home/sleipnir/development/workspace/pessoal/cloudstate-cli/cloudstate/shopping-cart/.cloudstate", profile: "java", namespace: "cloudstate", repo: "docker.io/sleipnir/shopping-cart", repo_user: "sleipnir", repo_pass: "bsd*a211003", editor: "idea", data_store: "InMemory", port: 8088 }
Success on installing 'User Function' shopping-cart in namespace: cloudstate
Checking deploy:
[cloudstate]# kubectl get po -n cloudstate
NAME READY STATUS RESTARTS AGE
cloudstate-operator-84b8848647-ds2h8 1/1 Running 0 26m
shopping-cart-deployment-7657c848fc-tpngd 1/2 Running 0 16m
[cloudstate]# kubectl logs -n cloudstate shopping-cart-deployment-7657c848fc-tpngd -c user-container
2019-10-31 21:38:54.067 DEBUG io.cloudstate.javasupport.impl.AnySupport - Attempting to load com.google.protobuf.Message class com.example.shoppingcart.Shoppingcart$AddLineItem
2019-10-31 21:38:54.072 DEBUG io.cloudstate.javasupport.impl.AnySupport - Attempting to load com.google.protobuf.Message class com.google.protobuf.Empty
2019-10-31 21:38:54.074 DEBUG io.cloudstate.javasupport.impl.AnySupport - Attempting to load com.google.protobuf.Message class com.example.shoppingcart.Shoppingcart$RemoveLineItem
2019-10-31 21:38:54.077 DEBUG io.cloudstate.javasupport.impl.AnySupport - Attempting to load com.google.protobuf.Message class com.example.shoppingcart.Shoppingcart$GetShoppingCart
2019-10-31 21:38:54.080 DEBUG io.cloudstate.javasupport.impl.AnySupport - Attempting to load com.google.protobuf.Message class com.example.shoppingcart.Shoppingcart$Cart
[INFO] [10/31/2019 21:38:56.977] [StatefulService-akka.actor.default-dispatcher-7] [akka.actor.ActorSystemImpl(StatefulService)] Received discovery call from sidecar [cloudstate-proxy-core 0.4.3] supporting CloudState 0.1
..........
Or use CLI logs command
[sleipnir@sleipnir shopping-cart]# cloudstate logs --name=shopping-cart
Get logs for shopping-cart
Ok(())
2019/11/13 19:51:02.928093 Received discovery call from sidecar [cloudstate-proxy-core we2154d9a] supporting Cloudstate 0.1
2019/11/13 19:51:02.928179 Responding with: service_name:"shopping-cart" service_version:"0.1.0" service_runtime:"go1.13 linux/amd64" support_library_name:"cloudstate-go-support" support_library_version:"0.1.0"
2019-11-13 19:51:09.389 INFO akka.management.cluster.bootstrap.internal.BootstrapCoordinator - Initiating new cluster, self-joining [akka://cloudstate-proxy@172.17.0.3:2552]. Other nodes are expected to locate this cluster via continued contact-point probing.
2019-11-13 19:51:09.390 INFO akka.remote.RemoteActorRefProvider$RemoteDeadLetterActorRef - Message [akka.management.cluster.bootstrap.internal.BootstrapCoordinator$Protocol$BootstrappingCompleted$] from Actor[akka://cloudstate-proxy/system/bootstrapCoordinator#1451520250] to Actor[akka://cloudstate-proxy/deadLetters] was not delivered. [1] dead letters encountered. If this is not an expected behavior, then [Actor[akka://cloudstate-proxy/deadLetters]] may have terminated unexpectedly, This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
2019-11-13 19:51:09.394 INFO akka.cluster.Cluster(akka://cloudstate-proxy) - Cluster Node [akka://cloudstate-proxy@172.17.0.3:2552] - Node [akka://cloudstate-proxy@172.17.0.3:2552] is JOINING itself (with roles [dc-default]) and forming new cluster
2019-11-13 19:51:09.394 INFO akka.cluster.Cluster(akka://cloudstate-proxy) - Cluster Node [akka://cloudstate-proxy@172.17.0.3:2552] - is the new leader among reachable nodes (more leaders may exist)
2019-11-13 19:51:09.398 INFO akka.cluster.Cluster(akka://cloudstate-proxy) - Cluster Node [akka://cloudstate-proxy@172.17.0.3:2552] - Leader is moving node [akka://cloudstate-proxy@172.17.0.3:2552] to [Up]
2019-11-13 19:51:09.404 INFO akka.actor.EmptyLocalActorRef - Message [akka.cluster.sharding.ShardCoordinator$Internal$Register] from Actor[akka://cloudstate-proxy/system/sharding/ShoppingCart#1132162436] to Actor[akka://cloudstate-proxy/system/sharding/ShoppingCartCoordinator/singleton/coordinator] was not delivered. [2] dead letters encountered. If this is not an expected behavior, then [Actor[akka://cloudstate-proxy/system/sharding/ShoppingCartCoordinator/singleton/coordinator]] may have terminated unexpectedly, This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
2019-11-13 19:51:09.411 INFO akka.cluster.singleton.ClusterSingletonManager - Singleton manager starting singleton actor [akka://cloudstate-proxy/system/sharding/ShoppingCartCoordinator/singleton]
2019-11-13 19:51:09.412 INFO akka.cluster.singleton.ClusterSingletonManager - ClusterSingletonManager state change [Start -> Oldest]
2019-11-13 19:51:09.418 INFO akka.cluster.sharding.DDataShardCoordinator - ShardCoordinator was moved to the active state State(Map())
2019-11-13 19:51:09.434 INFO io.cloudstate.proxy.EntityDiscoveryManager - CloudState proxy online at /0.0.0.0:8013
Listing supported profiles:
[cloudstate]# cloudstate --list-profiles
Profile | Dependencies | Resolved | Maturity Level |
csharp | dotnet | true | β |
go | go | true | π |
java | java, [maven | sbt] | true | π |
kotlin | java, [maven | sbt] | true | π |
node | node | true | π |
python | python, virtualenv | true | β |
rust | rust, cargo | true | β |
scala | java, scala, sbt | true | β |
Subtitle:
π Stable for production usage
π Unstable but usable
β Work in progress
π Unknown
Ok(())
[cloudstate]#
Destroying CloudState Resources
[cloudstate]# cloudstate destroy
π₯ Destroying CloudState resources
pod "cloudstate-operator-6579fb749c-d4fhs" deleted
pod "shopping-cart-deployment-668686cbd7-8kzqj" deleted
service "shopping-cart" deleted
deployment.apps "cloudstate-operator" deleted
deployment.apps "shopping-cart-deployment" deleted
replicaset.apps "cloudstate-operator-6579fb749c" deleted
replicaset.apps "shopping-cart-deployment-668686cbd7" deleted
πΏ Deleted all resources
namespace "cloudstate" deleted
π CloudState dead
Ok(())