Benoit Tellier created JAMES-3559: ------------------------------------- Summary: JMAP PUSH: window events on the server side? Key: JAMES-3559 URL: https://issues.apache.org/jira/browse/JAMES-3559 Project: James Server Issue Type: Improvement Components: JMAP Affects Versions: 3.6.0 Reporter: Benoit Tellier Assignee: Antoine Duprat
h3. Why? Today a JAMES action might trigger several events being dispatched on the event bus (eg moving 2 messages will end up firing 2 additions and 2 deletion) resulting in likely 4 StateChanges being pushed to the end user. h3. How? Using the reactor library, James can likely delay pushes for a given timewindow and merge the state changes together in order to supply the client with only one state change. A likely time value might be 2 seconds. - Pros: avoid event storm and will lower re-synchronization request count (good for perf?) - Cons: delays of 2s for real time across devices. We could of course make it configurable via a jmap.properties configuration. {code:java} # Optional. Omiting this property leads to windowing being disables. James will # then directly forward all StateChanges to the end user without attempting to # buffer and aggregating them. # If specified, James will delay stateChanges for that given amout of time and will attempt # to aggregate subsequent state changes together before returning them to the client. # Units: ms, s, min, h, d push.aggregation.window.duration=2s {code} Thoughts [~inputmice] maybe? -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org