Backend Infrastructure for Community Chat App

Hello All,

I want to create a community based chat app. Does anyone have any recommendations on how to set up the backend infrastructure. More specifically, answer the following questions:

  1. Which data structure is best for storing chat history in stable memory
  2. Which data structure is best for storing user profile information in stable memory
  3. Should I create separate canisters for each different “storage” canister? For example, one canister to handle storage of user information, one canister to handle storage of chat history and so on.
  4. Should each chat created be managed by its own canister? Or is that overkill?

I am new to development on ICP and am more used to handling data storage with traditional databases like MongoDB. Any help on how I could outline my database infrastructure would be greatly appreciated. As you can probably tell from the questions I am most curious about the best data structures to use for effective querying and how many canisters I should be using to handle this data storage. If anyone has any helpful experience from their development some advice would be greatly appreciated. Thank you.

Personally, if I was going to do this, I would wait a couple of weeks or so for the IC to be 64 bit as this will have a huge impact on the design of your system.

Secondly, we already have a fantastic open source chat app on the internet computer called OpenChat that you could contribute to.

1 Like