Skip to content

allow to refresh subscriptions#813

Draft
DavidBadura wants to merge 1 commit into3.17.xfrom
refresh-subscription
Draft

allow to refresh subscriptions#813
DavidBadura wants to merge 1 commit into3.17.xfrom
refresh-subscription

Conversation

@DavidBadura
Copy link
Member

Allow the refreshing of subscriptions, such as run-mode and group. If the PR #807 is merged, cleanup tasks will also be added here.

@github-actions
Copy link

Hello 👋

here is the most recent benchmark result:

SubscriptionEngineBench
=======================

+---------------------------+-----------------+-----------------+-----------+-----------------+------------+-------------+
|                           | time (kde mode)                               | memory                                     |
+---------------------------+-----------------+-----------------+-----------+-----------------+------------+-------------+
| subject                   | Tag: <current>  | Tag: base       | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+---------------------------+-----------------+-----------------+-----------+-----------------+------------+-------------+
| benchHandle10000Events () | 3.242s (±0.00%) | 3.246s (±0.00%) | -0.13%    | 47.489mb        | 48.005mb   | -1.07%      |
+---------------------------+-----------------+-----------------+-----------+-----------------+------------+-------------+

SimpleSetupBench
================

+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
|                                        | time (kde mode)                                     | memory                                     |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| subject                                | Tag: <current>     | Tag: base          | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| benchLoad1Event ()                     | 1.028ms (±0.00%)   | 1.061ms (±0.00%)   | -3.18%    | 34.976mb        | 34.976mb   | 0.00%       |
| benchLoad10000Events ()                | 64.100ms (±0.00%)  | 59.550ms (±0.00%)  | +7.64%    | 34.977mb        | 34.977mb   | 0.00%       |
| benchSave1Event ()                     | 1.221ms (±0.00%)   | 1.191ms (±0.00%)   | +2.57%    | 34.976mb        | 34.976mb   | 0.00%       |
| benchSave10000Events ()                | 218.064ms (±0.00%) | 229.936ms (±0.00%) | -5.16%    | 34.977mb        | 34.977mb   | 0.00%       |
| benchSave10000Aggregates ()            | 7.992s (±0.00%)    | 8.074s (±0.00%)    | -1.02%    | 34.977mb        | 34.977mb   | 0.00%       |
| benchSave10000AggregatesTransaction () | 5.091s (±0.00%)    | 4.998s (±0.00%)    | +1.85%    | 34.977mb        | 34.977mb   | 0.00%       |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+

CommandToQueryBench
===================

+----------------+------------------+------------------+-----------+-----------------+------------+-------------+
|                | time (kde mode)                                 | memory                                     |
+----------------+------------------+------------------+-----------+-----------------+------------+-------------+
| subject        | Tag: <current>   | Tag: base        | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+----------------+------------------+------------------+-----------+-----------------+------------+-------------+
| benchCreate () | 2.567ms (±0.00%) | 2.589ms (±0.00%) | -0.85%    | 4.904mb         | 4.945mb    | -0.83%      |
| benchUpdate () | 4.016ms (±0.00%) | 3.996ms (±0.00%) | +0.49%    | 4.974mb         | 4.945mb    | +0.59%      |
| benchBoth ()   | 6.997ms (±0.00%) | 6.701ms (±0.00%) | +4.43%    | 4.974mb         | 5.066mb    | -1.80%      |
+----------------+------------------+------------------+-----------+-----------------+------------+-------------+

SnapshotsBench
==============

+----------------------------------------+-------------------+-------------------+-----------+-----------------+------------+-------------+
|                                        | time (kde mode)                                   | memory                                     |
+----------------------------------------+-------------------+-------------------+-----------+-----------------+------------+-------------+
| subject                                | Tag: <current>    | Tag: base         | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+----------------------------------------+-------------------+-------------------+-----------+-----------------+------------+-------------+
| benchLoad10000EventsMissingSnapshot () | 60.556ms (±0.00%) | 61.178ms (±0.00%) | -1.02%    | 34.981mb        | 34.981mb   | 0.00%       |
| benchLoad10000Events ()                | 1.245ms (±0.00%)  | 1.255ms (±0.00%)  | -0.73%    | 34.981mb        | 34.981mb   | 0.00%       |
+----------------------------------------+-------------------+-------------------+-----------+-----------------+------------+-------------+

SplitStreamBench
================

+-------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
|                         | time (kde mode)                                     | memory                                     |
+-------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| subject                 | Tag: <current>     | Tag: base          | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+-------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| benchLoad10000Events () | 5.275ms (±0.00%)   | 5.420ms (±0.00%)   | -2.67%    | 35.581mb        | 35.581mb   | 0.00%       |
| benchSave10000Events () | 340.314ms (±0.00%) | 342.365ms (±0.00%) | -0.60%    | 35.584mb        | 35.583mb   | +0.00%      |
+-------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+

SimpleSetupStreamStoreBench
===========================

+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
|                                        | time (kde mode)                                     | memory                                     |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| subject                                | Tag: <current>     | Tag: base          | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| benchLoad1Event ()                     | 1.136ms (±0.00%)   | 1.146ms (±0.00%)   | -0.86%    | 35.138mb        | 35.138mb   | 0.00%       |
| benchLoad10000Events ()                | 64.726ms (±0.00%)  | 66.101ms (±0.00%)  | -2.08%    | 35.138mb        | 35.138mb   | 0.00%       |
| benchSave1Event ()                     | 1.214ms (±0.00%)   | 1.224ms (±0.00%)   | -0.86%    | 35.138mb        | 35.138mb   | 0.00%       |
| benchSave10000Events ()                | 284.712ms (±0.00%) | 298.046ms (±0.00%) | -4.47%    | 35.138mb        | 35.138mb   | 0.00%       |
| benchSave10000Aggregates ()            | 8.283s (±0.00%)    | 8.381s (±0.00%)    | -1.16%    | 35.138mb        | 35.138mb   | 0.00%       |
| benchSave10000AggregatesTransaction () | 5.121s (±0.00%)    | 5.125s (±0.00%)    | -0.08%    | 35.138mb        | 35.138mb   | 0.00%       |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+

PersonalDataBench
=================

+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
|                                        | time (kde mode)                                     | memory                                     |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| subject                                | Tag: <current>     | Tag: base          | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| benchLoad1Event ()                     | 1.081ms (±0.00%)   | 1.076ms (±0.00%)   | +0.47%    | 35.582mb        | 35.582mb   | 0.00%       |
| benchLoad10000Events ()                | 96.289ms (±0.00%)  | 96.064ms (±0.00%)  | +0.23%    | 35.582mb        | 35.582mb   | 0.00%       |
| benchSave1Event ()                     | 1.772ms (±0.00%)   | 1.691ms (±0.00%)   | +4.78%    | 35.582mb        | 35.582mb   | 0.00%       |
| benchSave10000Events ()                | 249.097ms (±0.00%) | 254.807ms (±0.00%) | -2.24%    | 35.655mb        | 35.655mb   | 0.00%       |
| benchSave10000Aggregates ()            | 12.329s (±0.00%)   | 12.512s (±0.00%)   | -1.46%    | 35.582mb        | 35.582mb   | 0.00%       |
| benchSave10000AggregatesTransaction () | 9.256s (±0.00%)    | 9.174s (±0.00%)    | +0.89%    | 36.041mb        | 36.041mb   | 0.00%       |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+

SubscriptionEngineBatchBench
============================

+---------------------------+-------------------+-------------------+-----------+-----------------+------------+-------------+
|                           | time (kde mode)                                   | memory                                     |
+---------------------------+-------------------+-------------------+-----------+-----------------+------------+-------------+
| subject                   | Tag: <current>    | Tag: base         | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+---------------------------+-------------------+-------------------+-----------+-----------------+------------+-------------+
| benchHandle10000Events () | 81.163ms (±0.00%) | 79.532ms (±0.00%) | +2.05%    | 35.476mb        | 35.476mb   | 0.00%       |
+---------------------------+-------------------+-------------------+-----------+-----------------+------------+-------------+

This comment gets update everytime a new commit comes in!


namespace Patchlevel\EventSourcing\Subscription\Engine;

interface SubscriptionRefreshable
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sounds like the interface should go on a subsription and not on the engine. Maybe something like CanRefreshSubscriptions?

Also, this interface would merge into SubscriptionEngine in 4.0.x?

@DanielBadura DanielBadura linked an issue Feb 12, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Allow to change subscription group & run mode afterwards

2 participants