Building compaction for log structured storage engines in Go. Source code will be published soon.
This project visualizes how users interact inside Discord servers by mapping their messages and relationships as a real-time graph. A message from one user to another is represented as a new relationship. Relationships get stronger (visualised as denser edges) with more interactions.
I originally built this last year using Postgres, but it quickly became clear that relational databases aren’t ideal for modeling large, highly connected networks. Storing massive adjacency lists gets slow and hard to scale once users have thousands of interactions.
After learning more about graph databases, I rebuilt the entire system using Neo4j. Graph databases are a much better fit because they represent relationships through nodes and edges, which makes dense interactions easy to store and fast to query. Complex joins that would be painful in SQL become simple Cypher queries.
The backend is written in Go. It listens to Discord events through discordgo, streams new messages into Neo4j, and updates the graph visualization as interactions grow.
I’ll be posting the final website on my portfolio soon. In the meantime, the full source code is available here: GitHub Repository.