/goloco

Repository contains a sample of micro-services written in different languages (GO, Python, Kotlin) communicating over GRPC and deployed on Kubernetes

Primary LanguagePythonApache License 2.0Apache-2.0

goloco

Introduction

goloco is a sample application based on microservices architecture. Its in very intial stages and I use it as my playground application to experiment with microservices.

Microservices

There are 3 microservices running written in different languages communicating over GRPC.

  • frontend (written in Golang)
  • locationservice (written in Python)
  • recommendationservice (written in Kotlin)

Database

There are currently two databses that I added in the application

  • Postgres (in an external cluster)
  • Redis (dockerized and deployed in kubernetes cluster)

Deployment

Skaffold: Application is deployed to Kubernetes with a single command using Skaffold.

Communication

  • Kubernetes: The app is designed to run on Kubernetes.
  • gRPC: Microservices use a high volume of gRPC calls to communicate to each other.

Installation

  1. Install tools to run a Kubernetes cluster locally:

    1. Run kubectl get nodes to verify you're connected to “Kubernetes on Docker”.
  2. Run skaffold run This will build and deploy the application.