This product is a microservice framework for the JVM and is intended to be built upon and extended. We have made an initial release of the source code, and continue to work actively to make it better. We hope to build an active open source community that drives the future of this framework, both by providing feedback and by actively contributing to the source code.
This project is built on top of Twitter's Finagle and Finatra libraries. The core functionality resides in finagle-core and finatra-http and has been abstracted from the developer.
This project has two modules core and archetype. The core module has the underlying business logic that abstracts the Thrift and RESTful capabilities from the developer. The archetype module is used to build out a microservice.
A microservice ( MS ) is composed of four modules defined in the table below.
Module | Description |
---|---|
business | Shared business logic either written in scala or java. |
client | Thrift client and test coverage. |
config | Parameters to be leveraged across all modules. |
model | Thrift model. |
server | REST and Thrift endpoints. |
You will need to install:
- Maven 3.3.x.
- Java 8
- Scala 2.11.8
- rpm
The following section is made up of multiple sections describing how to code, configure and various other subject matter with respect to dealing with a microservice.
How to code a microservice.
- How to create a microservice.
- How to add logging to a microservice.
- Expanding thrift capabilities.
- How to write clients.
- Adding API documentation to the microservice.
- How to build an RPM.
- Upgrading a microservices built on an older version of gm-fabric-jvm
Configuring a microservice.
- Available parameters to configure for the microservice.
- Change announcement and bind ports.
- How to register the microservice for auto-discovery.
- How to register IP addresses for auto discovery.
- How to enable 2-Way SSL.
- How to decrypt encrypted string resources.
- How to configure the microservice framework on windows.
Adding your own parameters and changing default behavior provided by the framework.
How to configure filters and what they provide for your microservice.
- How to enforce security on RESTful interfaces (AclRestFilter).
- How to capture metrics for dynamic URI's (GenericUriStatsFilter)
- How to control impersonation access to the microservice (WhitelistClientFilter).
How to administer your microservice.