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 yarnyarn global add tslint typescript- Add to ~/.bash_profile, ~/.bashrc, etc. (your shell startup script):
export GOPATH=$HOME/go
- Clone into
$GOPATH/src/github.com/SingularityInteractive/cohesiv $ brew install depdep ensureyarn
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
- Learn about GRPC
- Grab the protoc binary from here, and put it in your $PATH
- Modify
cohesiv/cohesiv.proto, and update existing code if necessary. - To compile new Go interfaces or Typescript definitions from the proto spec, run:
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/*.protoPlease 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
developwith the issue number in the title egcloses #42
- To release to our staging environment, merge
developintostaging, which will trigger a ci deployment. - To release to production, merge
stagingintomaster.
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.


