Skip to content

Latest commit

 

History

History
80 lines (66 loc) · 12 KB

MAP.md

File metadata and controls

80 lines (66 loc) · 12 KB

Lakeside Mutual Logo Microservice API Patterns in Lakeside Mutual

A number of Microservice API Patterns (MAP) realization examples can be found in the interface layers of the Java backends that implement the Lakeside Mutual microservices.

Responsibility Patterns

Pattern Example (Class) Backend Microservice(s)
Endpoint roles
Processing Resource InsuranceQuoteRequestProcessingResource.java Policy Management
Information Holder Resource CustomerInformationHolder.java Customer Core
NotificationInformationHolder.java Customer Management
InteractionLogInformationHolder.java Customer Management
Master Data Holder CustomerInformationHolder.java Customer Core
PolicyInformationHolder.java Policy Management
UserInformationHolder.java Customer Self Service
Operational Data Holder InsuranceQuoteRequestProcessingResource.java Policy Management
InsuranceQuoteRequestProcessingResource.java Customer Self Service
Reference Data Holder CityReferenceDataHolder.java Customer Core
Data Transfer Resource Risk report transfer service (gRPC protocol buffer) Risk Management
Link Lookup Resource tba
Operation Responsibilities
Computation Function computeRiskFactor in RiskComputationService.java Policy Management
Retrieval Operation getInsuranceQuoteRequests in InsuranceQuoteRequestProcessingResource.java Customer Self Service, Policy Management
State Creation Operation createInsuranceQuoteRequest in InsuranceQuoteRequestProcessingResource.java Customer Self Service
State Transition Operation respondToInsuranceQuote in InsuranceQuoteRequestProcessingResource.java Customer Self Service, Policy Management

Quality Patterns

Pattern Example (Class) Backend Microservice(s)
Quality Management and Governance
API Key APIKeyAuthenticationManager.java Customer Core
Rate Limit RateLimitInterceptor.java Customer Self Service
Error Report ErrorController.java Customer Core
ErrorController.java Customer Management
ErrorController.java Customer Self Service
ErrorController.java Policy Management
CustomerInformationHolder.java Policy Management
Data Transfer Parsimony
Wish List CustomerInformationHolder.java Customer Core
PolicyInformationHolder.java Policy Management
Wish Template tba
Request Bundle CustomerInformationHolder.java Customer Core
Conditional Request tba
Reference Management
Embedded Entity customerProfile in CustomerDto.java e.g. Customer Management
Linked Information Holder CustomerInformationHolder.java Policy Management

Structure Patterns

Pattern Example (Class) Backend Microservice(s)
Atomic Parameter CitiesResponseDto.java Customer Core
Atomic Parameter List AddressDto.java Customer Core
Parameter Tree CustomerResponseDto.java Customer Core
Parameter Forest CustomersResponseDto.java Customer Core
Pagination CustomerInformationHolder.java Customer Core
PaginatedCustomerResponseDto.java Customer Core
PaginatedPolicyResponseDto.java Policy Management
Context Representation tba
Element Stereotypes
Data Element Data Transfer Objects (DTOs) in *.interfaces.dtos.* packages All microservices
Id Element customerId in CustomerDto.java Customer Management, other microservices
Link Element Pagination links in createPaginatedCustomerResponseDto in CustomerInformationHolder.java Customer Core
Metadata Element Control variant: instances of Pagination (e.g., PaginatedCustomerResponseDto.java) Customer Core
Aggregation variant: counts and averages in risk reports (CSV) Risk Management
Provenance variant: tba

Note that some classes appear in several projects; microservices are not supposed to share code libraries because that would break their independent deployability, one of the defining microservices tenets.

What are Microservices? Why Patterns?

Some answers to these questions can be found on the MAP website.