Oddbean new post about | logout
 I'm afraid the current Nostr relays don't handle the pushing of events with random timestamps correctly. For example, Alice and Bob are chatting using NIP-17, and both of their chat apps are active. Alice sends Bob a message with a random timestamp from 48 hours ago. The relay not only pushes this message to Bob but also re-pushes all the messages that Alice sent to Bob within the past 48 hours. Alice then sends Bob another message with a random timestamp from 24 hours ago. The relay not only pushes this message to Bob but also re-pushes all the messages that Alice sent to Bob within the past 24 hours. 
 I don't know what relay you are using but that is wrong.  I'm curious what relays are doing this horrible thing and I'll add a test to my relay test suite. I wrote a relay https://github.com/mikedilger/chorus and I assure you it does not behave that way.

You connect and subscribe to a 1-week period for DMs.  You get all the DMs over that week, then an EOSE.  Then when the next DM comes in, dated 7 days ago for example, it shows up by itself under that subscription without any repeats of data that came before the EOSE.

This behavior could happen if your client disconnects when it gets an EOSE, because when it reconnects and submits the REQ it will get the entire week again.