This application is a Slack-like messenger that is designed to function across geographies.
Presently the application supports basic messaging features as well as an ability to share pictures in discussion channels.
The messenger can be deployed as a single instance on your local laptop or function across the world in the public Google Cloud infrastructure.
The software stack is built on Spring Boot, Spring Cloud Config Server, Spring Cloud Discover Server, Vaadin and YugabyteDB database. Google Cloud Storage is used for the Google Cloud deployment and MinIO is used in other deployment options.
The application can be deployed in several environments.
Deployment Type | Description |
---|---|
Your Laptop | Deploy the entire app with all the components (Spring Cloud Config, Spring Cloud Discovery, YugabyteDB, MinIO) on your local machine. |
Docker Compose | No need to install anything apart from Docker and Docker Compose. Deploy the entire app in Docker with a single Docker Compose command. |
Gitpod | Run the app in your personal Gitpod environment. Requires to fork this repository. |
Deployment in Google Kubernetes Engine | Deploy a distributed version of the app across two Kubernetes clusters in Google Cloud. |
Geo-Distributed Deployment in Google Kubernetes Engine | Deploy a geo-distributed version of the app across five Kubernetes clusters in Google Cloud. |
Deployment on Google Cloud Virtual Machines | Deploy a geo-distributed version of the app across multiple regions using VMs of Google Cloud. |