A distributed chat server build entirely using OpenFaaS functions, CockroachDB and Protocol Buffers running on Kubernetes.
- run on one server or thousands without any work
- provide basic functionality of users, chats and messages
- easy to add new features
- production ready chat system
- security
- authentication
- nice client
- reduce code duplication with better function templates
- write code in other languages too instead of all in golang
- better error handling, atm it sends the output of log.Print back to the caller
- prometheus metrics
- openfaas config for auto scaling strategies e.g. scaling down to 0 and scaling based on response time
- every action a client needs is a OpenFaaS function with it's own endpoint
- functions do not carry any state
- functions communicate with each other via the internal gateway e.g. to check authentication
- cockroachdb is the only source of truth
OpenFaaS portal
- clone
- install openfaas with helm (insecure mode)
- install cockroachdb with helm (insecure mode)
- configure environment variables in functions/functions.yml
- modify and run functions/deploy script to push to your docker repository and openfaas gateway (kubectl port-forward?)
- if that all worked you're done :)
- todo
