Skip to content

use type info in argument resolver#814

Open
DavidBadura wants to merge 1 commit into4.0.xfrom
use-type-info-in-argument-resolver
Open

use type info in argument resolver#814
DavidBadura wants to merge 1 commit into4.0.xfrom
use-type-info-in-argument-resolver

Conversation

@DavidBadura
Copy link
Member

Use symfony/type-info for the subscriber argument resolver. This is a further step to remove custom type logic and thus our limitations.

@DavidBadura DavidBadura added this to the 4.0.0 milestone Feb 14, 2026
@DavidBadura DavidBadura added enhancement New feature or request BC-Break labels Feb 14, 2026
@DavidBadura DavidBadura force-pushed the use-type-info-in-argument-resolver branch from ec29d9e to abe4a5d Compare February 14, 2026 11:13
@github-actions
Copy link

github-actions bot commented Feb 14, 2026

Hello 👋

here is the most recent benchmark result:

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

+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
|                                        | time (kde mode)                                     | memory                                     |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| subject                                | Tag: <current>     | Tag: base          | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| benchLoad1Event ()                     | 1.144ms (±0.00%)   | 1.095ms (±0.00%)   | +4.43%    | 35.737mb        | 36.253mb   | -1.43%      |
| benchLoad10000Events ()                | 103.894ms (±0.00%) | 103.033ms (±0.00%) | +0.83%    | 35.737mb        | 36.253mb   | -1.43%      |
| benchSave1Event ()                     | 1.961ms (±0.00%)   | 2.002ms (±0.00%)   | -2.01%    | 35.737mb        | 35.737mb   | 0.00%       |
| benchSave10000Events ()                | 312.409ms (±0.00%) | 322.634ms (±0.00%) | -3.17%    | 35.738mb        | 35.738mb   | 0.00%       |
| benchSave10000Aggregates ()            | 13.607s (±0.00%)   | 13.520s (±0.00%)   | +0.64%    | 35.737mb        | 35.737mb   | 0.00%       |
| benchSave10000AggregatesTransaction () | 10.432s (±0.00%)   | 10.383s (±0.00%)   | +0.47%    | 35.977mb        | 35.977mb   | 0.00%       |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+

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

+----------------+------------------+------------------+-----------+-----------------+------------+-------------+
|                | time (kde mode)                                 | memory                                     |
+----------------+------------------+------------------+-----------+-----------------+------------+-------------+
| subject        | Tag: <current>   | Tag: base        | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+----------------+------------------+------------------+-----------+-----------------+------------+-------------+
| benchCreate () | 2.720ms (±0.00%) | 2.740ms (±0.00%) | -0.73%    | 4.905mb         | 4.802mb    | +2.15%      |
| benchUpdate () | 4.128ms (±0.00%) | 4.210ms (±0.00%) | -1.95%    | 4.911mb         | 4.902mb    | +0.19%      |
| benchBoth ()   | 7.617ms (±0.00%) | 7.153ms (±0.00%) | +6.50%    | 5.596mb         | 5.591mb    | +0.09%      |
+----------------+------------------+------------------+-----------+-----------------+------------+-------------+

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

+----------------------------------------+-------------------+-------------------+-----------+-----------------+------------+-------------+
|                                        | time (kde mode)                                   | memory                                     |
+----------------------------------------+-------------------+-------------------+-----------+-----------------+------------+-------------+
| subject                                | Tag: <current>    | Tag: base         | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+----------------------------------------+-------------------+-------------------+-----------+-----------------+------------+-------------+
| benchLoad10000EventsMissingSnapshot () | 68.627ms (±0.00%) | 66.689ms (±0.00%) | +2.90%    | 35.143mb        | 35.143mb   | 0.00%       |
| benchLoad10000Events ()                | 1.067ms (±0.00%)  | 1.062ms (±0.00%)  | +0.44%    | 35.143mb        | 35.143mb   | 0.00%       |
+----------------------------------------+-------------------+-------------------+-----------+-----------------+------------+-------------+

SimpleSetupTaggableStoreBench
=============================

+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
|                                        | time (kde mode)                                     | memory                                     |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| subject                                | Tag: <current>     | Tag: base          | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| benchLoad1Event ()                     | 1.101ms (±0.00%)   | 1.106ms (±0.00%)   | -0.47%    | 36.304mb        | 36.304mb   | 0.00%       |
| benchLoad10000Events ()                | 68.809ms (±0.00%)  | 72.659ms (±0.00%)  | -5.30%    | 36.304mb        | 36.304mb   | 0.00%       |
| benchSave1Event ()                     | 1.391ms (±0.00%)   | 1.445ms (±0.00%)   | -3.77%    | 36.304mb        | 36.304mb   | 0.00%       |
| benchSave10000Events ()                | 315.220ms (±0.00%) | 317.807ms (±0.00%) | -0.81%    | 36.304mb        | 36.304mb   | 0.00%       |
| benchSave10000Aggregates ()            | 8.829s (±0.00%)    | 8.750s (±0.00%)    | +0.91%    | 36.304mb        | 36.304mb   | 0.00%       |
| benchSave10000AggregatesTransaction () | 5.738s (±0.00%)    | 5.750s (±0.00%)    | -0.21%    | 36.304mb        | 36.304mb   | 0.00%       |
| benchAppend1Event ()                   | 1.521ms (±0.00%)   | 1.542ms (±0.00%)   | -1.34%    | 36.304mb        | 36.304mb   | 0.00%       |
| benchAppend100Events ()                | 7.334ms (±0.00%)   | 7.434ms (±0.00%)   | -1.35%    | 36.304mb        | 36.304mb   | 0.00%       |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+

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

+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
|                                        | time (kde mode)                                     | memory                                     |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| subject                                | Tag: <current>     | Tag: base          | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| benchLoad1Event ()                     | 1.172ms (±0.00%)   | 1.183ms (±0.00%)   | -0.96%    | 35.139mb        | 35.139mb   | 0.00%       |
| benchLoad10000Events ()                | 67.495ms (±0.00%)  | 66.673ms (±0.00%)  | +1.23%    | 35.139mb        | 35.139mb   | 0.00%       |
| benchSave1Event ()                     | 1.265ms (±0.00%)   | 1.273ms (±0.00%)   | -0.64%    | 35.139mb        | 35.139mb   | 0.00%       |
| benchSave10000Events ()                | 284.418ms (±0.00%) | 291.174ms (±0.00%) | -2.32%    | 35.139mb        | 35.139mb   | 0.00%       |
| benchSave10000Aggregates ()            | 8.591s (±0.00%)    | 8.757s (±0.00%)    | -1.89%    | 35.139mb        | 35.139mb   | 0.00%       |
| benchSave10000AggregatesTransaction () | 5.695s (±0.00%)    | 5.727s (±0.00%)    | -0.55%    | 35.139mb        | 35.139mb   | 0.00%       |
+----------------------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+

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

+---------------------------+-------------------+-------------------+-----------+-----------------+------------+-------------+
|                           | time (kde mode)                                   | memory                                     |
+---------------------------+-------------------+-------------------+-----------+-----------------+------------+-------------+
| subject                   | Tag: <current>    | Tag: base         | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+---------------------------+-------------------+-------------------+-----------+-----------------+------------+-------------+
| benchHandle10000Events () | 88.577ms (±0.00%) | 90.490ms (±0.00%) | -2.11%    | 35.653mb        | 35.653mb   | 0.00%       |
+---------------------------+-------------------+-------------------+-----------+-----------------+------------+-------------+

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

+-------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
|                         | time (kde mode)                                     | memory                                     |
+-------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| subject                 | Tag: <current>     | Tag: base          | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+-------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+
| benchLoad10000Events () | 3.266ms (±0.00%)   | 3.315ms (±0.00%)   | -1.47%    | 35.766mb        | 35.766mb   | 0.00%       |
| benchSave10000Events () | 514.146ms (±0.00%) | 513.463ms (±0.00%) | +0.13%    | 35.974mb        | 35.974mb   | 0.00%       |
+-------------------------+--------------------+--------------------+-----------+-----------------+------------+-------------+

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

+---------------------------+-----------------+-----------------+-----------+-----------------+------------+-------------+
|                           | time (kde mode)                               | memory                                     |
+---------------------------+-----------------+-----------------+-----------+-----------------+------------+-------------+
| subject                   | Tag: <current>  | Tag: base       | time-diff | Tag: <current>  | Tag: base  | memory-diff |
+---------------------------+-----------------+-----------------+-----------+-----------------+------------+-------------+
| benchHandle10000Events () | 3.488s (±0.00%) | 3.476s (±0.00%) | +0.35%    | 48.225mb        | 48.225mb   | 0.00%       |
+---------------------------+-----------------+-----------------+-----------+-----------------+------------+-------------+

This comment gets update everytime a new commit comes in!

$metadataFactory->metadata($subscriber::class);
}

public function testUnionTypeNotSupported(): void
Copy link
Member

Choose a reason for hiding this comment

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

if we are now supporting these cases, we should cover them, no?

Copy link
Member Author

Choose a reason for hiding this comment

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

In my opinion, that doesn't make sense, since we neither actively support it nor don't. We add the argument type to the argument metadata (this is tested), and the argument resolver decides whether something is supported (this is also tested). type info supports union types as well as collections, array shapes, etc. (we haven't tested this, we don't test the functionality of external code).

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

Labels

BC-Break enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants