chibenwa opened a new pull request #380:
URL: https://github.com/apache/james-project/pull/380
## 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.
## 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.
```
# 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
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]