Releases: imperva/stepping
Releases · imperva/stepping
Improvments & New Features
- TickCallBack to support CRON expression
- Allow a better API to follow subjects by enabling to provide a specific function to be called, per followed subject
- Allow a better API to follow subjects by enabling to provide a specific distribution strategy, per followed subject
- Fix SharedDistributionStrategy implementation. No more sharing the same Q internally, instead the same message is sent to all the relevant steps, but stepping will make sure that only the first step will handle it, the rest will discard
- Expose new API in Data object to enable consumers to specify an Expiration policy to the message
New Features and Bug Fixes
-
Handling Errors
Stepping infra and IExceptionHandler supports Errors -
Introduce a new Distribution Strategy "SharedDistributionStrategy".
This strategy should replace "EvenDistributionStrategy" when working with multiple nodes.
The new strategy will make sure to distribute the Subject to the available non-busy Steps, instead of splitting evenly the data to the different Steps.
"EvenDistributionStrategy" still exists but is now marked as deprecated. -
Introduce a new way to distribute Subjects between multiple Steps.
The new API is cleaner and handles cases where one of the Steps reached its 'Bound Capacity' and blocked the Subject delivery of other available Steps -
Improve bugs:
- In cases where 'Bound Capacity' was reached, Stepping could fail to handle errors/exceptions properly
- Change stepping.default.step.initialdelay to 0 instead of 1000. When changing UnitType and leaving stepping.default.step.initialdelay to its default (1000), lead to an unexpected behavior
Improvments & Code Fixes
- Fix Exception handling and Close() flow
- Expose a new functionality to ContainerService: getQSize
This enables steps to get their internal Q size
Improvments & New Features
- Improve Nodes duplication. Now the Steps are duplicated as well to ensure thread safety
- Add new SteppingSystemCriticalException(). Once catched by Stepping, Stepping will kill gracefully the entire process
- Expose API to bound each Step's queue to prevent memory leaks
- Intoduce a new System Step 'PerfSamplerStep' (disabled by default). Once enabled it gives stack visibility so you can analyze which in which method your application spends most of the time. It gives you a way to debug performance issues
- Fix bug: When an algo is 'killed' it will bring down only the algo itself and not all the others
- Expose a way to adjust onTickCallBack at runtime
- Add to each Step a unique identity
First Release
3.5.0 Create CONTRIBUTING.md