Cohesiv is a multi-tier, microservice architecture monorepo built to supplement Gloo's monolith with services useful to third-party clients, without modifying Gloo's core codebase.
This is intended to be a cloud-native application, deployed to AWS
to showcase the best
practices in application deployment, utilizing a modern stack including Docker
, Kubernetes
,
GRPC
, Golang
, and Node
.
npm i -g yarn
yarn global add tslint typescript
export GOPATH=$HOME/go
$GOPATH/src/github.com/SingularityInteractive/cohesiv
$ brew install dep
dep ensure
yarn
Note: This project must exist in your GOPATH to use vscode language features like intellisense. The path above works with a default Golang setup
To build all Go and Typescript services, then docker-compose, run: sh up.sh
cohesiv/cohesiv.proto
, and update existing code if necessary. sh gen-protos.sh
or
# Go types and interfaces
protoc -I cohesiv/ cohesiv/cohesiv.proto --go_out=plugins=grpc:cohesiv
# TS defintitions and modules
./node_modules/.bin/rxjs-grpc -o cohesiv/cohesiv.ts cohesiv/*.proto
Please open an issue for feature tracking or support.
Branch off develop, adding issue number in the branch name
Push it to your remote
Add commits
Open a pull request into develop
with the issue number in the title eg closes #42
develop
into staging
, which will trigger a ci deployment.staging
into master
. The following steps will walk you through on how to prepare requirements, deploy and run this application.
Note: If you see any issues with the steps below, please open an issue.