Springy-Store-Microservices

Springy Store is a conceptual simple μServices-based project using the latest cutting-edge technologies, to demonstrate how the Store services are created to be a cloud-native and 12-factor app agnostic. Those μServices are developed based on Spring Boot & Cloud framework that implements cloud-native intuitive, design patterns, and best practices.

MIT License

Stars
567
Committers
5

Bot releases are hidden (Show)

Springy-Store-Microservices - Refresher 3 Latest Release

Published by mohamed-taman about 4 years ago

Update to the latest stack versions and bugfixes

Release notes:

  1. Bugfix for issue #75
  2. Change Spring boot to version 2.4.0-M1.
  3. Change Spring Cloud to version 2020.0.0-M3.
  4. Update RabbitMQ to the latest 3.x.x version.
Springy-Store-Microservices - Refresher 2

Published by mohamed-taman over 4 years ago

Update to the latest stack versions

Release notes:

  1. Update to JDK 15 EA.
  2. Update to docker files to use JDK 15.
  3. Update to latest Spring boot 2.4.0 and Cloud to 2020.0.0 -SNAPSHOT versions.
  4. Update Zipkin to the newest version.
  5. Update integration tests to work with spring latest updates.
  6. Update new System services dependencies on Zipkin.
  7. Updated Readme file.
  8. Update setup.sh to force updating snapshot dependencies from remote Maven repositories.
Springy-Store-Microservices - Refresher

Published by mohamed-taman over 4 years ago

Update to new Spring boot & cloud versions.

Release notes:

  1. Update system to Spring boot version 2.4.0-snapshot.
  2. Update system to Spring Cloud version 2020.0.0-M2.
Springy-Store-Microservices - Tracker

Published by mohamed-taman over 4 years ago

Added distributed tracking with #SpringCloud #Sleuth and #Zipkin #71

Release notes:

  1. Add Zipkin to the Microservices diagram, and visualize the whole system.
  2. Add dependencies to the maven files to bring in Spring Cloud Sleuth and the capability of sending trace information to Zipkin.
  3. Add dependencies to RabbitMQ and Kafka for the projects that haven't used them before, that is, the Spring Cloud projects authorization-server, eureka-server, and gateway.
  4. Configure the Microservices to send trace information to Zipkin using either RabbitMQ or Kafka.
  5. Add a Zipkin server to the Docker compose files.
  6. Add the kafka Spring profile in docker-compose-kafka.yml to the Spring Cloud projects authorization-server, eureka-server, and gateway.
  7. Cleaning more docker-compose.yml files configurations, to common configurations profiles under config/repo.
Springy-Store-Microservices - Spike

Published by mohamed-taman over 4 years ago

Adding Circuit Breaker and retry with Resilience4j issue #68

Release notes:

  1. Add Resilience4j Circuit Breaker to the store service.
  2. Add Resilience4j retry to store service.
  3. Update configurations with comments in store.yml under configs/repo.
  4. Update diagram to show circuit breaker and retry.
  5. Updated test-em-all.sh script to test circuit breaker functionality.
Springy-Store-Microservices - Stargazer

Published by mohamed-taman over 4 years ago

Adding Spring Cloud Configuration Server

Release notes:

  1. Add Centralized Configuration Server to the zoo.
  2. Using the native profile approach.
  3. Generalize all services configs to a unified repo served by Config Server.
  4. Generalize all cloud Infra services configs to a centralized repo served by Config Server.
  5. Updated docker-compose to 3.8.
  6. Updating docker-compose*.yml files with a new Config server.
  7. Add underlying Security to the config server.
Springy-Store-Microservices - Refresher

Published by mohamed-taman over 4 years ago

Adhere Spring Cloud new Version Schema

Release notes:

  1. Updating to new Spring cloud version schema 2020.0.0-M1.
  2. Updating to MySQL 8.0.20 database to docker-compose.
  3. Updating to MongoDB 4.2.6 database to docker-compose.
  4. Updating to latest RabbitMQ to docker-compose.
  5. Updating to latest Kafka and Zookeeper to docker-compose.
  6. Updating to latest OpenJDK:14.0.1-jdk-slim-buster to docker images.
Springy-Store-Microservices - Protector

Published by mohamed-taman over 4 years ago

Securing Access to APIs, Added "Authorization Server"

Release notes:

  1. Adding an authorization server to the zoo.
  2. Adding support for OAuth 2.0 and OpenID Connect standards.
  3. Adding a diagram on how the system landscape is secured.
  4. Protecting external communication with HTTPS.
  5. Securing access to the Eureka service discovery Server using HTTP basic authentication.
  6. Authenticating and authorizing API access using OAuth 2.0 and OpenID Connect.
  7. Add testing with the local authorization server.
  8. Add testing with an OpenID Connect provider, OAuth.
Springy-Store-Microservices - Refresher

Published by mohamed-taman over 4 years ago

Upgrade to spring boot v2.3.0.RC1

Springy-Store-Microservices - Hinder

Published by mohamed-taman over 4 years ago

Adding Edge Server (aka. Cloud Gateway)

Release Notes

  1. Adding an edge server to our system landscape.
  2. Setting up a Spring Cloud Gateway, including configuring routing rules.
  3. Hide eureka, store, product, review, and recommendation behind edge server.
  4. Expose Eureka UI, and Store service APIs through Edge Server.
  5. New System diagram is added.
Springy-Store-Microservices - Cloud

Published by mohamed-taman over 4 years ago

Adding Eureka Service Discovery to the Zoo

Release notes

  1. Some other refactoring to the project structure.
  2. Documenting all the processes and new structures.
  3. All Microservices communications are done through the Discovery server.
  4. Adding the Eureka server docker file, and add it to the docker-compose files.
Springy-Store-Microservices - Organize

Published by mohamed-taman over 4 years ago

Release Notes

  1. Move all 4 microservices into a new folder store-services.
  2. Move all 2 shared projects into a new folder store-common.
  3. Move all 2 parent POMs projects into a new folder store-base.
  4. Adding a new folder store-could-infra for all cloud-native services.
Springy-Store-Microservices - Reactive

Published by mohamed-taman over 4 years ago

Fully Reactive and Event-Driven system.

Release Notes

  1. Develop Non-blocking persistence using Spring Data for MongoDB and their tests.
  2. Develop Non-blocking REST APIs in the core services, and handle blocking code for the JPA-based persistence layer.
  3. Managing Non-blocking REST APIs in the Store service.
  4. Develop Event-Driven and asynchronous versions of the create and delete services.
  5. Using RabbitMQ without the use of partitions.
  6. Using RabbitMQ with two partitions per topic.
  7. Using Kafka with two partitions per topic.
Springy-Store-Microservices - Sage

Published by mohamed-taman over 4 years ago

Enhance review microservice database capabilities

Release Notes

  • Add database version control using flyway.
  • Fix review service starting dependency on MySql database.
  • Database migrations work on a standalone or containerized database.
  • More system documentation.
  • Fix all Optional and List calls with direct get() or List<> access without checking for their value first that is prone to through NPE.
Springy-Store-Microservices - Architecture enhancements

Published by mohamed-taman over 4 years ago

Release Notes

  • Refactoring all services and their APIs architecture.
  • Fixing 2 bugs in test cases that were disabled.
Springy-Store-Microservices - Storm

Published by mohamed-taman over 4 years ago

Release Notes

  1. Adding a persistence layer to project and recommendation Microservices based on MongoDB.
  2. Adding a persistence layer to review microservice based on MySQL db.
  3. Updated persistence automated test cases for new CRUD functionalities.
  4. Updating the Product service layer to use the persistence layer.
  5. Updating the Review service layer to use the persistence layer.
  6. Updating the Recommendation service layer to use the persistence layer.
  7. Extending the Store composite service API with CRUD functionality.
  8. Adding MySQL and MongoDB databases to the Docker Compose landscape.
  9. Updating the automated tests of the Microservices landscape with new functionalities.

for more info check the add persistence layer milestone issues.

Springy-Store-Microservices - Source

Published by mohamed-taman over 4 years ago

Release Codename: Source SiriusXI

Release notes:

  • Fix the test-em-all.sh, call in the readme file, as it supports local and docker-compose.
  • Documenting Product composite API using swagger2.
  • Fix various files to reflect new url http://localhost:<port>/v1/product-composite/1.
  • All other issues released in this version could be found here.
Springy-Store-Microservices - Spring

Published by mohamed-taman over 4 years ago

Release Codename: Spring SiriusXI

Release notes:

  • Best practice of using maven.
  • Externalize user or company-specific properties.
  • Using profiles to dockerize microservices.
  • Dockerization best practice.
  • All other issues released in this version could be found here.

Special thanks for Nick Stolwijk for his contributions.

Springy-Store-Microservices - Fixing layered jar file problem

Published by mohamed-taman over 4 years ago

Release Notes

Due to the new Spring boot version, 2.3.0.M4 jar files have new layers schemes that manage artifacts differently which was not compatible with the old layered folder structure version, therefore it fails to build docker images for all the Microservices.

Springy-Store-Microservices - Springy Store Dockerization

Published by mohamed-taman over 4 years ago

Release Notes

  • Dockerize each service.
  • Adding maven docker plug-in to chassis-store to automate the dockerization process.
  • Adding docker-compose support to manage all containers at once.
  • Updating Spring boot to 2.3.0.M4.