> For the complete documentation index, see [llms.txt](https://xmlking.gitbook.io/micro-apps/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://xmlking.gitbook.io/micro-apps/master.md).

# Introduction

Modern microservices for Post-Kubernetes Era.

Monorepo(apps, libs) project to showcase workspace setup with multiple apps and shared libraries

## Features

1. **Polyglot** - Support multiple languages (java, kotlin, groovy)
2. Support multiple app frameworks (apache-beam, cli, micronaut, quarkus)
3. Support multiple testing frameworks (spock, spek, kotlin-test and junit5)&#x20;
4. Build **lightweight** Docker and [OCI](https://github.com/opencontainers/image-spec) images with [Jib](https://github.com/GoogleContainerTools/jib)
5. Build native binaries using [GraalVM](https://www.graalvm.org/)
6. Cloud Native (Service Mesh, health checks, observability)

[![Check](https://github.com/xmlking/micro-apps/workflows/Check/badge.svg)](https://github.com/xmlking/micro-apps/actions?query=workflow%3ACheck) [![Version](https://img.shields.io/github/v/tag/xmlking/micro-apps)](https://github.com/xmlking/micro-apps/tags) [![License](https://img.shields.io/github/license/xmlking/micro-apps)](https://github.com/xmlking/micro-apps/blob/develop/LICENSE)

## Quality

[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=xmlking_jvm-gitops\&metric=alert_status)](https://sonarcloud.io/dashboard?id=xmlking_jvm-gitops) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=xmlking_jvm-gitops\&metric=sqale_rating)](https://sonarcloud.io/dashboard?id=xmlking_jvm-gitops) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=xmlking_jvm-gitops\&metric=security_rating)](https://sonarcloud.io/dashboard?id=xmlking_jvm-gitops) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=xmlking_jvm-gitops\&metric=reliability_rating)](https://sonarcloud.io/dashboard?id=xmlking_jvm-gitops) [![Bugs](https://sonarcloud.io/api/project_badges/measure?project=xmlking_jvm-gitops\&metric=bugs)](https://sonarcloud.io/dashboard?id=xmlking_jvm-gitops) [![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=xmlking_jvm-gitops\&metric=vulnerabilities)](https://sonarcloud.io/dashboard?id=xmlking_jvm-gitops)

## Run

### Docker

> start app dependencies: postgres, redis
>
> ```bash
> # 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
>
> ```bash
> # start local sonarqube
> docker-compose up sonarqube # docker-compose up -V sonarqube
> # stop local sonarqube before restart again
> docker-compose down # docker-compose down -v
> # start local nexus
> docker-compose up nexus
> ```
>
> access **sonarqube** at <http://localhost:9000/> (admin/admin)

See [gradle commands](/micro-apps/advanced/gradle.md) for this project.

### Apache Beam pipelines

> Start [wordcount](https://github.com/xmlking/micro-apps/tree/6f94b302a6dc43c948b8bef0c55e64228b6d8a6e/apps/wordcount/README.md)

### Quarkus

> Start [Greeting API](https://github.com/xmlking/micro-apps/tree/6f94b302a6dc43c948b8bef0c55e64228b6d8a6e/apps/greeting-quarkus/README.md)

### Micronaut

> Start [Greeting API](https://github.com/xmlking/micro-apps/tree/6f94b302a6dc43c948b8bef0c55e64228b6d8a6e/apps/greeting-micronaut/README.md)

## Inspiration

* Creating a [Multi Module Project](https://spring.io/guides/gs/multi-module/)
* Microservices in a Post-Kubernetes Era [link](https://www.infoq.com/articles/microservices-post-kubernetes)
* Why is a [workspace](https://nrwl.io/nx/why-a-workspace) (or monorepo) needed?&#x20;


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://xmlking.gitbook.io/micro-apps/master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
