Introduction
Modern microservices for Post-Kubernetes Era.
Monorepo(apps, libs) project to showcase workspace setup with multiple apps and shared libraries
Features
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
Build native binaries using GraalVM
Cloud Native (Service Mesh, health checks, observability)
Platform independent Observability instrumentation via OpenTelemetry
End-to-End Google Cloud DevOps flow pop-kustomize
Quality
Sub Modules
Services | Libs | Pipelines |
---|---|---|
Setup
Prerequisites
IntelliJ Plugins
Contribution
Pre-commit checks
Run tests, lint, coverage for all subprojects
Code Quality
Software Composition Analysis (SCA) tool that attempts to detect publicly disclosed vulnerabilities contained within a project’s dependencies.
Maintenance
Run
Docker
start app dependencies: postgres, redis
start optional CI/CD infra dependencies: sonarqube, nexus
Dashboard access
SonarQube → Browser http://localhost:9000 →
user: admin, password: admin
Grafana → Browser http://localhost:3000/plugins/redis-app/ →
user: admin, password: admin
Redis Insight → Browser http://localhost:8001/
Jaeger → Browser http://localhost:16686
Kibana → Browser http://localhost:5601
Prometheus → Browser http://localhost:9090
See gradle commands for this project.
Apps
Apache Beam Pipelines
Explore Wordcount Pipeline
Explore Streaming Ingestion Pipeline
Explore Classifier Pipeline
Quarkus
Explore GraphQL API
Kotlin-gRPC
Explore Account-gRPC API
Explore Kotlin-gRPC API
Explore Kotlin-gRPC API
Spring
Explore Spring-RSocket Chat APP
Explore Spring CRUD + Redis Search API
Svelte
Explore SvelteKit WebApp
Libs
Reusable libraries
Explore Apache Beam Kotlin Extensions
Explore Shared gRPC Components
Shared code within this repo
Explore Shared Core Code
Explore Shared Model Objects
Explore Shared Pipelines Code
Explore Shared Spring Services Code
Explore Shared Spring GraphQL Services Code
Explore Shared ProtoBuf Contracts
Explore Shared Test Fixtures
Inspiration
Creating a Multi Module Project
Microservices in a Post-Kubernetes Era link
Why is a workspace (or monorepo) needed?
Gradle Setup arara
GoogleCloudPlatform's microservices-demo
Last updated