Building, testing, containerizing, deploying, and monitoring distributed microservices is difficult, but using Lightbend technologies can make it a lot faster and easier to be successful. In this four part blog series, we walk you through a working Proof of Concept (PoC) built using Lightbend’s open source distributed toolkit, Akka. This PoC delivers a resilient, highly performant, elastic, distributed, and consistent state solution that provides an automatic in memory cache with a persistent backing. Here is the breakdown:
- Part 1 - Getting Started: we walk through building, testing, and running the PoC locally, with instrumentation and monitoring wired in from the very beginning using Lightbend Telemetry.
- Part 2 - Docker and Local Deploy: here we cover containerizing our PoC, and then deploying locally in Docker. Then, we’ll load test and monitor our PoC as we did in the first installment.
- Part 3 - Kubernetes and Monitoring: in this part,we introduce Lightbend Console for Kubernetes (K8s), and then deploy our PoC in Minikube (desktop version of K8s) using YAML files provided in this repository. Again, we’ll load test with Gatling, but this time we’ll monitor our PoC in Lightbend Console.
- Part 4 - Source Code: In our final installment, we do a deep dive into our Scala source code.
- This repository is the Java version of the original Scala version found here.
- Testing Lightbend's Akka Persistence Plugin for R2DBC.
- TODO: In the process of building, multi-node tests, docker, and K8s examples for Yugabyte
mvn clean akka-grpc:generate
Elasticsearch developer sandbox
docker-compose -f docker-compose-cassandra.yml up
mvn compile exec:exec -Dapp.configfile="cluster-application.conf"
mvn exec:exec -Dapp.configfile="endpoint-application.conf"
Elasticsearch developer sandbox
docker-compose -f docker-compose-yugabyte.yml up
docker exec -i yb-tserver-n1 /home/yugabyte/bin/ysqlsh -h yb-tserver-n1 -t < https://raw.githubusercontent.com/akka/akka-persistence-r2dbc/main/ddl-scripts/create_tables_yugabyte.sql
mvn compile exec:exec -Dapp.configfile="cluster-application-yugabyte.conf"
mvn exec:exec -Dapp.configfile="endpoint-application.conf"