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