Skip to content

Latest commit

 

History

History

foundation

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

Cloud native fictional internet banking application based on Spring.io platform and Netflix OSS

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.

Design principles

  • 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.

Architecture highlights

  • 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.

Modules

domain

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.

service-support

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

test-webapp

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.