/catalog

Microservice architecture showcase

Primary LanguageShell

catalog pipeline status

AIM of the project is to show how different technologies can be integrated to build an application.

Business requirements

Application provides basic catalog\shopping cart functionality with the followin features:

  • user can register or login
  • anonymous user can view list of products in a catalog
  • authenticated user can add a product to favorites list
  • authenticated user can remove products from list of favorites

Design mock: https://ninjamock.com/s/LVD5BTx

Technologies

Project has monorepo structure.

CI

Tools

Infrastructure

Frontend

Backend

  • GRPC communication layer between services
  • GRPC Healthcheck for K8S readiness and liveness probes

Java

Golang

Development environment

Configure kubectl:

PROJECT_ID=`gcloud projects list --filter="name=catalog" --format="get(project_id)"`
gcloud config set project ${PROJECT_ID}
ZONE=`gcloud container clusters list --filter="name=gke-cluster" --format="get(zone)"`
gcloud config set compute/zone ${ZONE}
gcloud container clusters get-credentials gke-cluster