A zero-configuration Java 8 library for building and running REST microservices with a plugin-based architecture.
Microserver is a Java 8 native library for building and running REST microservices with zero configuration and a plugin-based architecture. It provides a standards-based, battle-hardened engine that supports both pure microservices and micro-monolith styles, allowing teams to adopt microservices without operational risk. The library simplifies service development by eliminating XML configuration and imposing no directory structure.
Java developers and teams building REST microservices who want a lightweight, modular alternative to heavier frameworks like Spring Boot, especially those transitioning from monoliths to microservices.
Developers choose Microserver for its zero-configuration setup, plugin-driven modularity, and support for micro-monolith deployments, which offer the productivity of microservices without the operational overhead. Its battle-tested production use since 2014 and seamless integration with popular Java ecosystems like Spring and Jersey make it a reliable choice.
Microserver is a Java 8 native, zero configuration, standards based, battle hardened library to run Java Rest Microservices via a standard Java main class. Supporting pure Microservice or Micro-monolith styles.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Requires no XML or imposed directory structure; you can start a REST service with just a Java main class, as shown in the quick start example where 'new MicroserverApp(() -> "test-app").run()' deploys a server.
Seamlessly integrates with Spring, Jersey, Tomcat, and more via modular plugins, allowing teams to add features like Swagger or Hibernate by simply adding dependencies to the build file.
Enables packaging multiple services into a single deployment for developer productivity, helping teams transition from monoliths to microservices without full operational risk, as detailed in the embedded microservices example.
Automatically executes endpoints asynchronously by returning reactive-streams Publishers, simplifying async programming without manual AsyncResponse handling, demonstrated with Future from cyclops-react.
The plugin architecture requires careful management of dependencies and service aggregation in fat Jars, as noted in the README's warning to configure tools like Gradle Shadow Jar with 'mergeServiceFiles()'.
Colocating multiple microservices in one JVM demands caution to avoid conflicts in the shared Spring context, increasing setup complexity compared to isolated deployments.
While plugins cover popular tools, the ecosystem is smaller than Spring Boot's, potentially missing integrations for newer or niche technologies, forcing custom plugin development.