An open API service indexing awesome lists of open source software.

https://github.com/shahroz16/goloco

Repository contains a sample of micro-services written in different languages (GO, Python, Kotlin) communicating over GRPC and deployed on Kubernetes
https://github.com/shahroz16/goloco

docker golang grpc kotlin kubernetes microservices python

Last synced: about 1 year ago
JSON representation

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

Awesome Lists containing this project

README

          

# 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](https://kubernetes.io):**
The app is designed to run on Kubernetes.
- **[gRPC](https://grpc.io):** Microservices use a high volume of gRPC calls to
communicate to each other.

## Installation
1. Install tools to run a Kubernetes cluster locally:

- Local Kubernetes cluster deployment tool:
- [Minikube](https://kubernetes.io/docs/setup/minikube/).
- Docker for Desktop: It provides Kubernetes support as [noted
here](https://docs.docker.com/docker-for-mac/kubernetes/).
- [skaffold]( https://skaffold.dev/docs/install/)

1. Run `kubectl get nodes` to verify you're connected to “Kubernetes on Docker”.

1. Run `skaffold run`
This will build and deploy the application.