Building block and demo minimal application skeletons that illustrates how an internet banking application can be structured around multiple microservices built on top of Spring.io platform and Netflix OSS libraries.
- Adopt industry best practices for building cloud native application. Do NOT re-invent the wheel.
- Adopt effective 3rd party libraries to enable developers to accomplish maximum functionality without a lot of coding.
- Use multiple coarsely coupled microservices built with spring-boot instead of one monolithic application to achieve agility in deployment.
- Pure software based service registration and discovery based on Eureka to achieve auto-scaling and failover. No dependencies on external proxy or load balancer.
- Authentication and authorization is centrally managed and is enforced throughout the entire application.
- Builtin performance monitoring using Spring Boot Actuator and Netflix Hystrix Dashboard.
- Centrally managed application configuration. Each module will download configuration from the configuration server during startup.
Domain data models and APIs for RESTful micro services. They should be referenced in individual micro service implementation and service consumers.
- Jackson @JSON annotation in models in controller JSON serialization and deserialization behaviors
- Java validation annotation for data type validation.
Common building blocks and support features:
- display git commit info in healthcheck end point.
- annotation based audit trail
- servlet to simulate external http based services for use in testing
A minimal application that is used as test container for various features above.
Each of the services will use the following
- modelmapper based intelligent data mapping
- jacoco agent coverage report support
- git info maven plugin to store git status in properties file and expose as health check end point.
- test cases for ensure application can start and custom health indicator is functional.