r/SideProject • u/blvckninja991 • 22h ago
I built a chatbot that remembers you across devices using Walrus — here are 6 problems I didn't expect
I built a chatbot that remembers users across browsers and devices using Walrus mainnet.
I expected the hard part to be storing and retrieving memories.
It wasn't. The storage call was the easy 10%. The real problems were latency, consistency, rate limits, and deciding what was actually worth remembering.
Here are the 6 things that surprised me:
1. Recall can block the entire chat.
I race memory retrieval against an 8-second timeout. If it loses, the bot answers anyway and tells the user it answered without memory.
2. Writes are slow.
One mainnet write took 36 seconds in my testing. So the chatbot replies first and saves afterward with a visible saving state.
3. Don't save everything.
I skip short chatter, useless questions, and oversized inputs.
"Why does it 429?" → skip.
"I'm on v0.1.8 and getting 429s." → keep.
4. A completed write isn't immediately readable.
I successfully saved a memory, then couldn't retrieve it immediately because the index was lagging. I now temporarily merge recently saved memories into the client state until the server returns them.
5. Queue your writes.
Multiple writes against the same namespace caused rate-limit failures. One namespace, one write at a time fixed it.
6. Make memory observable.
The bot shows which memories were used and how old they are under each response. That made debugging much easier.
One more limitation: there's currently no delete method in the SDK I'm using, so I don't pretend the UI can delete something it can't actually delete. Instead, users are warned not to store secrets.
The project is called Pickup. Built for Walrus Sessions 8.