Grisu.io is a tiny framework that will help you build your Java microservices more quickly and efficiently.

The codebase is organised in multiple modules in order to clearly serve different purposes:

  • core library / This is the main library of the whole framework and it is referenced by other packages from the Grisu family. It provides common basic functionalities, such as a MapBuilder.java, a fluent interface to create maps or MapUtils.java, a collection of common operators on maps or GrisuException.java, a useful Exception class

  • pojo / This library helps you create different and specialised Java classes whose properties must be automatically copied to/from other classes (eg. representational classes <–> dto <–> beans) within the same JVM or even wire-transfered. In fact the pojo library provides a very easy and out-of-the-box mechanism to translate a pojo class into a JSON serialized string and viceversa.

  • usvcs / Here you have the annotations library used to map the microservices/nanoservices within your implementations. Thanks to this abstraction and actual implementations (eg. usvcs-rabbitmq) you can switch between a “monolithic” or “distributed” approach within minutes

  • usvcs-rabbitmq / RabbitMQ implementation of the usvcs package

  • persistentpojo / This package defines (and provides tools for) pojos that must be persisted

  • storage / Still to be released as opensource project / Cassandra + Elastic Search implementation of the persistentpojo interfaces

  • ee-core / convenience package to collect java-ee utils