Build a distributed chat app in Golang
I’ve built a demo chat app in Go before, using Go channels to broadcast messages, data is saved to MongoDB. It’s quite a fun learning experience, but when you want a chat app at scale, you need more. Yes I am looking at you: microservices.
Now I know one thing or two about microservices and distributed systems, I think at least these three are in need:
-
- A service for saving messages to DB
-
- A service for handling messages from clients
-
- A proper message queue, for the talkings between services
Now we’ll start to build one.
(Some time after…)
It’s on GitHub now. The README should be enough to explain the idea.