Evaluation criteria

h

Justification

p1

Database per service

1

Since Spring offers packages for connecting to and manipulating most existing DBMS, it is fully compatible with this criterion.

p2

API Composition

1

Thanks to Spring’s data-flow starter, it is possible to compose APIs to obtain data.

p3

SAGA

1

Thanks to the JMS and ActiveMQ starter, Spring software can manage the events (transmission and reception) necessary for this criterion.

p4

Domain Event

1

Thanks to the JMS and ActiveMQ starter, Spring software can manage the events (transmission and reception) necessary for this criterion.

p5

Event sourcing

1

Thanks to the JMS and ActiveMQ starter, Spring software can manage the events (transmission, reception, subscription) necessary for this criterion.

p6

Testing of service components

1

Thanks to the Spring starter, especially the MOCK tool.

p7

Service Integration Contract Testing

1

Thanks to the cloud-contract starter, we test the integration of services.

p8

Multiple service instances per host

1

As soon as a JVM is installed on a host, Spring software can be launched and the execution port is dynamically assigned.

p9

Service instance per container

1

Thanks to the web-starter, Spring embeds its own web server, making deployment in a container extremely easy.

p10

Serverless deployment

1

Thanks to the dependency managers that exist in JAVA, it is possible to send just its source code for deployment.

p11

Externalized configuration

1

By a simple modification of the Spring configuration file, it is possible to tell it where to go to get its configuration, depending on the execution that is done.

p12

Remote Procedure Invocation (RPI)

1

As Spring uses JAVA, it embeds all the remote procedure calling techniques.

p13

Message exchange (Messaging)

1

Thanks to the JMS and ActiveMQ starter, services can exchange messages and subscribe.

p14

API Gateway

1

Spring boot offers starters to return data in almost any format including JSON, XML.

p15

Backends for frontends

1

Thanks to different starters allowing to create controllers (MVC) according to the call method, we can have several APIs per client.

p16

Service Registry

1

Several implementations are available including the most used eureka-zuul of netflix.

p17

Client-side service discovery

1

Several implementations are available including the most used eureka-zuul of netflix.

p18

Server-side service discovery

1

Several implementations are available including the most used netflix service-registry.

p19

Self-registration

1

Several implementations are available including the most used eureka-client of netflix.

p20

Circuit breaker

1

Several implementations are available including the most used Hystrix from netflix.

p21

Access token

1

By combining the security starter and the jjwt dependency of maven, we obtain a secure system by token.

p22

Log aggregation

1

Thanks to the sleuth starter and RabbitMQ, Spring allows a centralized management of the Log.

p23

Implementation measures

1

Thanks to the Actuator starter, it is possible to have the health status of the software at any time; thanks to available URLs, REST.

p24

Distributed tracing

1

Thanks to the sleuth starter and RabbitMQ, Spring allows for distributed log management.

p25

API Health Check

1

Thanks to the Actuator starter, it is possible to have the health status of the software at any time; thanks to available REST URLs.

p26

Composition of the page fragment on the server side

1

Using the thymeleaf starter, we can do server-side fragment composition and make a view functional.

p27

Composition of the client-side user interface

0

Spring is server only.

Total

h = 1, 26 times & h = 0, 1 time