O discovery tem como objetivo definir e refinar as tecnologias necessárias para a versão inicial de uma Stack Java com Spring.
DoD
[x] Definir versão do Java
[x] Definir tecnologias para API
[x] Definir tecnologias para persistência
[x] Definir tecnologias para mensagens
[x] Definir tecnologias para observabilidade
[x] Definir tecnologias para resiliência
[x] Definir tecnologias para testes
[x] Definir tecnologias para documentação
[x] Definir todos os steps para publicar a aplicação via runtime da stackspot
[x] Avaliar a Stack Java criada pelo time de Zup Edu
Tecnologias
API
Spring Web
Build web, including RESTful, applications using Spring MVC. Uses Apache Tomcat as the default embedded container.
Spring Reactive Web
Build reactive web applications with Spring WebFlux and Netty.
Persistência
Amazon DynamoDB
A fast and flexible NoSQL database service for any scale
Amazon RDS
Managed relational database service
Mensagens
Amazon Simple Notification Service (SNS)
Pub/sub messaging for microservices and serverless applications.
Amazon SQS
A message queuing service
Amazon Managed Streaming for Apache Kafka (Amazon MSK)
A fully managed, highly available, and secure Apache Kafka service.
Observabilidade
Micrometer (Metrics, Distributed Tracing, and Logging)
Instrument your code with dimensional metrics, spans with a vendor-neutral interface and decide on the observability system as a last step.
Built-in support for CloudWatch, Datadog, Dynatrace, OpenTelemetry, Prometheus and much more.
Circuit Breaker
Allows the system to deal with failures.
Monitors and tracks possible failures. When a failure occurs a certain number of times, the circuit breaker drops and protects the system to prevent catastrophic failures.
Example
Rate Limiter
Limits the amount of execution of a process in a given unit of time
Example
Time Limiter
Defines a limit of time to wait for an operation to complete
Example
Retry
Repeats the execution of the code block according to the configured number of attempts
Example
Description
O discovery tem como objetivo definir e refinar as tecnologias necessárias para a versão inicial de uma Stack Java com Spring.
DoD
Tecnologias
API
Build web, including RESTful, applications using Spring MVC. Uses Apache Tomcat as the default embedded container.
Persistência
Amazon DynamoDB A fast and flexible NoSQL database service for any scale
Amazon RDS Managed relational database service
Mensagens
Amazon Simple Notification Service (SNS) Pub/sub messaging for microservices and serverless applications.
Amazon SQS A message queuing service
Amazon Managed Streaming for Apache Kafka (Amazon MSK) A fully managed, highly available, and secure Apache Kafka service.
Observabilidade
Resiliência
Resilience4j (Circuit Breaker / Rate Limiter / Time Limiter / Retry / Bulkhead) Fault tolerance library designed for functional programming
Circuit Breaker Allows the system to deal with failures. Monitors and tracks possible failures. When a failure occurs a certain number of times, the circuit breaker drops and protects the system to prevent catastrophic failures. Example
Rate Limiter Limits the amount of execution of a process in a given unit of time Example
Time Limiter Defines a limit of time to wait for an operation to complete Example
Retry Repeats the execution of the code block according to the configured number of attempts Example
Bulkhead Limits the number of concurrent execution Example
Testes
Documentação