Modern microservices for Post-Kubernetes Era.
Monorepo(apps, libs) project to showcase workspace setup with multiple apps and shared libraries
- Polyglot - Support multiple languages (java, kotlin, groovy)
- Support multiple app frameworks (apache-beam, cli, micronaut, quarkus)
- Support multiple serialization methods (JSON, Avro, ProtoBuf)
- A type-safe cascading configuration with konf
- Integrated with best testing frameworks (kotest, MockK)
- Build lightweight Docker and OCI images with Jib
- Build native binaries using GraalVM
- Cloud Native (Service Mesh, health checks, observability)
- Deployment automation with kustomize and Event-driven Autoscaling with KEDA
start app dependencies: postgres, redis
# start local sonarqube
docker-compose up postgres # docker-compose up -V postgres
# stop local postgres before restart again
docker-compose down # docker-compose down -v
start optional CI/CD infra dependencies: sonarqube, nexus
# start local sonarqube
docker-compose up sonarqube # docker-compose up -V sonarqube
# stop local sonarqube before restart again
docker-compose down
# (optional) this remove volumes - needed when you upgrade image versions
docker-compose down -v
# start local nexus
docker-compose up nexus
access sonarqube at http://localhost:9000/ (admin/admin)
See gradle commands for this project.
Start wordcount Pipeline
Start streaming Pipeline
Start Greeting API
Start Kotlin-gRPC API
Start Greeting API
- Creating a Multi Module Project
- Microservices in a Post-Kubernetes Era link
- Why is a workspace (or monorepo) needed?
- Gradle Setup arara