This is a real-time group chat application built in Go that enables multiple users to communicate via a shared message channel. Messages are broadcast to all connected users using a fanout pattern through RabbitMQ, ensuring scalable and asynchronous communication. Each message is also persistently stored in a PostgreSQL database for historical access and analysis.
- Real-time messaging using RabbitMQ (fanout exchange)
- Persistent message storage in PostgreSQL
- Easy inspection and management with pgAdmin
- Docker Compose setup for rapid development
- Built with performance and scalability in mind using Go
| Component | Technology |
|---|---|
| Backend | Go |
| Message Broker | RabbitMQ |
| Database | PostgreSQL |
| DB GUI | pgAdmin |
| Containerization | Docker |
The requirements for running this application are Go and Docker
-
Clone the repo and enter the folder
git clone https://github.com/JuanMartinCoder/LanChat/cd LanChat/ -
You will need the dependencies used
go mod tidy -
Start the services with the script
./servicesUp start -
Connect to the chat with the main app
go run ./cmd/main.go -
To shutdown the services do
./servicesUp stop
