JIQS (pronounced as "jicks," rhyming with "kicks") repository offers a template for the alternative highly customizable Java microservice stack with focus on simplicity, modularity and control over dependencies where each piece can be determined individually and excluded / replaced.
It should also open a path for platform engineers to craft a bigger abstraction, tailored for specific company business needs to reduce friction during development.
- Focusing on Java language, less focus on the annotations / frameworks to stay true to YAGNI principle.
- Focusing on pure SQL, no ORM for several reasons.
- Javalin as a web server core.
- jOOQ as a way to talk to the database in pure SQL.
- Flyway as a database migration tool which also leverages SQL.
- Gestalt as a customizable configuration library.
- Inject as a standalone dependency injection library.
- Spotless to maintain code formatting rules.
- jooq-java-class-generator to glue Flyway and jOOQ together.
- Javalin Swagger to provide API documentation for consumers.
- Google JIB to build deployable Docker image artifact.
build.gradle
has dependencies split into sections, where PREFERENTIAL
sections can and should be replaced to suit
your needs.