Skip to content

NIP-CF: Changes Feed#2196

Open
ChristianChiarulli wants to merge 1 commit intonostr-protocol:masterfrom
ChristianChiarulli:changes-feed
Open

NIP-CF: Changes Feed#2196
ChristianChiarulli wants to merge 1 commit intonostr-protocol:masterfrom
ChristianChiarulli:changes-feed

Conversation

@ChristianChiarulli
Copy link
Contributor

No description provided.

@staab
Copy link
Member

staab commented Jan 22, 2026

what's wrong with just using negentropy to sync while simultaneously opening a REQ with limit=0? This ensures complete sync and no timestamp windowing.

@ChristianChiarulli
Copy link
Contributor Author

ChristianChiarulli commented Jan 22, 2026

tbh i'm not super familiar with negentropy so i'll have to look more into it, but syncing this way is pretty trivial to implement on both the relay and client.

I think for frequent incremental sync, like an offline notes app, I'd rather just use the changes subscription and keep track of a single number.

@staab
Copy link
Member

staab commented Jan 22, 2026

This change implies (potentially) upgrading dozens of relay implementations and asking clients who want to sync to implement both versions of sync, as well as feature detect which one is supported by a given relay. This is why the NIPs repos has the "preferably one way of doing things" rule — every feature hurts interoperability, so we shouldn't add them unless actually necessary.

@ChristianChiarulli
Copy link
Contributor Author

Well I don't think every relay needs to upgrade to work this way, either implement it or don't and communicate it in the nip-11 doc. Also clients don't have to implement sync at all or can choose which implementation fits their use case better.

As for the "preferably one way of doing things" rule, i guess that depends where you draw the line.

For instance:

Negentropy is Set Reconciliation or "what's different?"

Changes Feed is an Ordered Event Log or "what happened, in order since x?"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants