Giter Site home page Giter Site logo

xmlking / micro-apps Goto Github PK

View Code? Open in Web Editor NEW
49.0 5.0 10.0 5.91 MB

Microservices in Post-Kubernetes Era. A polyglot monorepo

Home Page: https://xmlking.gitbook.io/micro-apps/v/develop/

License: MIT License

Kotlin 64.77% HTML 2.97% Java 0.80% Dockerfile 0.34% Shell 0.87% JavaScript 30.25%
kotlin gradle-kotlin-dsl gitops gitflow jenkins gitflow-workflow semantic-release semantic-versioning conventional-commits conventional-changelog

micro-apps's Introduction

Micro Apps

Modern microservices for Post-Kubernetes Era. An open source framework for building and deploying distributed applications.
This template monorepo style project allows you to write your application as a modular monolith and deploy it as a set of microservices.

Monorepo(services, pipelines and libs) project to showcase workspace setup with multiple apps and shared libraries
This template project has the best of both worlds: the development velocity of a monolith, with the scalability, security, and fault-tolerance of microservices.

Features

  1. Modular-monolith distributed applications

  2. Polyglot - Support multiple languages (java, kotlin, groovy)

  3. Support multiple app frameworks (apache-beam, cli, micronaut, quarkus)

  4. Support multiple serialization methods (JSON, Avro, ProtoBuf)

  5. A type-safe cascading configuration with konf

  6. Integrated with best testing frameworks (kotest , MockK)

  7. Build lightweight Docker and OCI images with Jib

  8. Build native binaries using GraalVM

  9. Cloud Native (Service Mesh, health checks, observability)

  10. Platform independent Observability instrumentation via OpenTelemetry

  11. Deployment automation with kustomize and Event-driven Autoscaling with KEDA

  12. End-to-End Google Cloud DevOps flow pop-kustomize

  13. JReleaser The quick and effortless way to release your project!

  14. Check Version License

Quality

Quality Gate Status Maintainability Rating Security Rating Reliability Rating Bugs Vulnerabilities

Sub Modules

Services Libs Pipelines
GraphQL-r2dbc Core WordCount
Redis OM KBeam Classifier
Streams Spring Ingestion
Account GraphQL
Test
Model

Setup

Prerequisites

sdk rm java
sdk i java 17.0.8-zulu
java --version

sdk rm gradle
sdk i gradle
gradle --version

sdk i springboot
sdk i quarkus

# optional
sdk i java 21-graal
# Do you want java 21-graal to be set as default? (Y/n): n

Oracle GraalVM Container Images

IntelliJ Plugins

  1. Spotless
  2. Ktlint
  3. Kotest
  4. GraphQL
  5. Env files support
  6. lombok

Contribution

Pre-commit checks

# spotlessCheck - Checks that sourcecode satisfies formatting steps.
gradle spotlessCheck
# spotlessApply - Applies code formatting steps to sourcecode in-place.
gradle spotlessApply

Run tests, lint, coverage for all subprojects

gradle check

Code Quality

# Generates code coverage HTML and XML reports for all enabled test tasks in one project.
gradle koverMergedReport

Software Composition Analysis (SCA) tool that attempts to detect publicly disclosed vulnerabilities contained within a project’s dependencies.

gradle dependencyCheckAggregate

Maintenance

# Update versions in libs.versions.toml file
gradle versionCatalogUpdate --interactive

Run

Docker

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

Dashboard access

See gradle commands for this project.

Apps

Apache Beam Pipelines

Explore Wordcount Pipeline

Explore Streaming Ingestion Pipeline

Explore Classifier Pipeline

Quarkus

Explore REST, OpenAPI, OpenID Connect, API

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

micro-apps's People

Contributors

dependabot[bot] avatar renovate-bot avatar xmlking avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

micro-apps's Issues

Feedback on Detected INSECURE_HTTP

Greetings,

We are some security researchers who have built a scanner to detect configurations that can be used to conduct attacks for Kubernetes pods. For your repository, we have found a few misconfigurations in the following locations:

Misconfiguration name: INSECURE_HTTP
Location-1:

- '--es.uri=http://localhost:9200'

Please give us feedback. Do you think these are valid instances of misconfigurations? Will you fix them?

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Error type: undefined. Note: this is a nested preset so please contact the preset author if you are unable to fix it yourself.

Testing mermaid

Testing mermaid

  graph LR;
      A-->B;
      A-->C;
      B-->D;
      C-->D;
flowchart LR
   A -- text --> B -- text2 --> C

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.