Microserver

Plugins for building DRY microservices with Spring and Spring Boot.

Don't repeat yourself - use and build plugins. We have over 30 plugins including for Jersey, Grizzly, Tomcat, Jackson, Spring Boot, Guava, Drop Wizard Metrics, load / CPU stats (SIGAR), cloud storage (AWS S3), Service event monitoring, CORS, Service Registration


Quick start

Install Microserver with Grizzly, Jackson and Jersey (Gradle config below)

Use Microserver with Spring Boot (Maven)


Define a Microservice in a single class.

Run your application and browse to http://localhost:8080/test-app/test to see the response "hello world!"

Add plugins by adding them to your build file - rerun the app to get new end points, features and functionality!

Why Microserver?

Don't build monolithic (big-ball-of-mud) 'common' libraries to share infrastructure across your Microservices. Build well-tested, decoupled plugins with limited and coherent scope instead. With Microserver, ensuring standard behaviour - monitoring, alerting, standard rest end points is as easy as importing a plugin to your project.

Microserver screencast : getting started with plugins


Microserver is a plugin engine for building Spring and Spring Boot based microservices. Microserver supports pure microservice and micro-monolith development styles. The micro-monolith style involves packaging multiple services into a single deployment - offering developers the productivity of microservice development without the operational risk. This can help teams adopt a Microservices architecture on projects that are currently monoliths.

screen shot 2016-05-06 at 12 30 26 pm

Microserver plugins are orthogonal to Microservices. They solve a common problem in Microservice development where by services are broken up and deployed separately but code remains entangled in a monolithic common library. By making use of a plugin system that follows the same modular archictectural principals as microservice development, teams can keep cross-service concerns and infrastructure in properly size, coherent and cohesive plugin modules.

Organization

Plugins released by AOL are listed on the Microserver github page.

Each plugin has it's own README.md

Each README.md provides info on how to import the plugin using Gradle and Maven, an overview of what the plugin does, any configurable properties for that plugin and a link to some demo applications using that plugin that test it's functionality.

E.g. the Machine Stats Plugin

Or a Spring Boot plugin

Or the S3 plugin

Even the Error codes plugin

You get the idea :)