Coder Social home page Coder Social logo

udemy-tea-plantation-microservices's Introduction

Plantation project

I created this project to try-out knowledge obtained during the Udemy course about Spring Cloud.

The system itself is represented by 3 domain microservices and 2 spring-cloud-specific microservices. es. Besides that, domain services requires PostgreSQL, MongoDB for the persistence layer, and RabbitMQ for async communication.

There is a helm chart for the system to run it within k8s, even though k8s provide capabilities to substitute some of Spring Cloud solutions, I wanted to combine those 2 approach

Theme of the services is tea distribution

  • Plantation service - creates and manages information about Tea, periodically makes a sync-up with Inventory service for tea warehousing
  • Inventory service - service for Tea warehousing holds information about available tea amount for selling
  • Order service - service that holds tea ordering logic, works as coordinator during order processing between Plantation service and Inventory service

How to build

The codebase is organized as a Gradle multi-module project, each microservice registered as an "included build" which means each microservice is an independent build unit

Build

  • ./gradlew tea-plantation:build
  • ./gradlew tea-inventory:build
  • ./gradlew tea-order:build
  • ./gradlew discovery:build
  • ./gradlew gateway:build

Build docker images

  • ./gradlew tea-plantation:dockerBuild
  • ./gradlew tea-inventory:dockerBuild
  • ./gradlew tea-order:dockerBuild
  • ./gradlew discovery:dockerBuild
  • ./gradlew gateway:dockerBuild

How to make a helm chart

  1. cd ./helm/tea-plantation
  2. helm dependencies update
  3. helm upgrade --install plantation -n plantation .

After installation Open-api will be available at http://${NODE_ADDRESS}/swagger-ui.html

NOTE

For helm chart you should provide host and port values for MongoDB, PostgreSQL and RabbitMQ

  • global.postgres.host
  • global.postgres.port
  • global.rabbitmq.host
  • global.rabbitmq.port
  • global.mongodb.host
  • global.mongodb.port

udemy-tea-plantation-microservices's People

Contributors

maksymkaratai avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.