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 
