Giter VIP home page Giter VIP logo

icy-design / slick-microservices Goto Github PK

View Code? Open in Web Editor NEW
18.0 5.0 4.0 34.59 MB

Cloud-native microservices template project with GraphQL/gRPC in different programming languages

License: Apache License 2.0

Dockerfile 2.37% Shell 0.26% Go 11.95% HTML 3.63% C# 44.28% Batchfile 0.43% JavaScript 1.78% Python 8.05% Java 2.76% TypeScript 3.69% PHP 20.79%
microservices grpc graphql kubernetes skaffold ecommerce monorepo cloud-native

slick-microservices's Introduction

K8S GraphQL/gRPC Microservices Template

This project is a cloud native microservices monorepo project based on Google Hipster Shop Demo. The project can serve as a startup template to utilize a modularized microservices technologies like Kubernetes/GKE, gRPC, GraphQL and Istio.

This project is managed in a monorepo based on Skaffold/Cloud Code for easy developing and deploying. This application works on any Kubernetes cluster (such as a local one), as well as Google Kubernetes Engine.

Service Architecture

The application is a web-based shop demo composed of many microservices written in different languages that talk to each other via gRPC.

Architecture of microservices

Find Protocol Buffers Descriptions at the ./pb directory.

Service Language Description
frontend Go Exposes an HTTP server to serve the website. Does not require signup/login and generates session IDs for all users automatically.
gateway Node/Typescript GraphQL gateway to backend microservices.
cartservice C# Stores the items in the user's shopping cart in Redis and retrieves it.
productcatalogservice PHP Provides the list of products from a JSON file and ability to search products and get individual products.
currencyservice Node/JS Converts one money amount to another currency. Uses real values fetched from European Central Bank. It's the highest QPS service.
paymentservice Node/JS Charges the given credit card info (mock) with the given amount and returns a transaction ID.
shippingservice Go Gives shipping cost estimates based on the shopping cart. Ships items to the given address (mock)
emailservice Python 3 Sends users an order confirmation email (mock).
checkoutservice Go Retrieves user cart, prepares order and orchestrates the payment, shipping and the email notification.
recommendationservice Python 2 Recommends other products based on what's given in the cart.
adservice Java Provides text ads based on given context words.
loadgenerator Python/Locust Continuously sends requests imitating realistic user shopping flows to the frontend.

slick-microservices's People

Contributors

forafish avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  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.