Skip to content

POC: add upcaster extension#192

Draft
DavidBadura wants to merge 1 commit into1.24.xfrom
upcaster
Draft

POC: add upcaster extension#192
DavidBadura wants to merge 1 commit into1.24.xfrom
upcaster

Conversation

@DavidBadura
Copy link
Copy Markdown
Member

@DavidBadura DavidBadura commented May 2, 2026

Currently, we have the upcasting feature for events in https://github.com/patchlevel/event-sourcing. I think this would be a good extension for the Hydrator.

@DavidBadura DavidBadura added the enhancement New feature or request label May 2, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 2, 2026

Hello 👋

here is the most recent benchmark result:

HydratorWithLazyBench
=====================

+------------------------------------------+--------------------+--------------------+-----------------+------------+
|                                          | time (kde mode)                         | memory                       |
+------------------------------------------+--------------------+--------------------+-----------------+------------+
| subject                                  | Tag: <current>     | Tag: base          | Tag: <current>  | Tag: base  |
+------------------------------------------+--------------------+--------------------+-----------------+------------+
| benchHydrate1Object ()                   | 0.600μs (±0.00%)   | 0.600μs (±0.00%)   | 2.803mb         | 3.252mb    |
| benchHydrate1ObjectTriggerInit ()        | 4.600μs (±0.00%)   | 4.800μs (±0.00%)   | 2.803mb         | 3.252mb    |
| benchHydrate1000Objects ()               | 486.000μs (±0.00%) | 465.000μs (±0.00%) | 2.809mb         | 3.273mb    |
| benchHydrate1000ObjectsTriggerInit ()    | 3.436ms (±0.00%)   | 3.374ms (±0.00%)   | 2.813mb         | 3.316mb    |
| benchHydrate1000000Objects ()            | 317.032ms (±0.00%) | 313.046ms (±0.00%) | 2.809mb         | 3.273mb    |
| benchHydrate1000000ObjectsTriggerInit () | 2.306s (±0.00%)    | 2.280s (±0.00%)    | 2.812mb         | 2.812mb    |
+------------------------------------------+--------------------+--------------------+-----------------+------------+

StackHydratorBench
==================

+-------------------------------+-------------------+-------------------+-----------------+------------+
|                               | time (kde mode)                       | memory                       |
+-------------------------------+-------------------+-------------------+-----------------+------------+
| subject                       | Tag: <current>    | Tag: base         | Tag: <current>  | Tag: base  |
+-------------------------------+-------------------+-------------------+-----------------+------------+
| benchHydrate1Object ()        | 4.000μs (±0.00%)  | 4.000μs (±0.00%)  | 2.804mb         | 2.804mb    |
| benchExtract1Object ()        | 66.800μs (±0.00%) | 60.600μs (±0.00%) | 2.804mb         | 2.804mb    |
| benchHydrate1000Objects ()    | 2.654ms (±0.00%)  | 2.710ms (±0.00%)  | 3.011mb         | 3.011mb    |
| benchExtract1000Objects ()    | 2.360ms (±0.00%)  | 2.372ms (±0.00%)  | 2.935mb         | 2.935mb    |
| benchHydrate1000000Objects () | 1.569s (±0.00%)   | 1.590s (±0.00%)   | 3.011mb         | 3.011mb    |
| benchExtract1000000Objects () | 1.496s (±0.00%)   | 1.470s (±0.00%)   | 2.935mb         | 2.935mb    |
+-------------------------------+-------------------+-------------------+-----------------+------------+

HydratorBench
=============

+-------------------------------+------------------+------------------+-----------------+------------+
|                               | time (kde mode)                     | memory                       |
+-------------------------------+------------------+------------------+-----------------+------------+
| subject                       | Tag: <current>   | Tag: base        | Tag: <current>  | Tag: base  |
+-------------------------------+------------------+------------------+-----------------+------------+
| benchHydrate1Object ()        | 4.000μs (±0.00%) | 4.000μs (±0.00%) | 2.803mb         | 2.803mb    |
| benchExtract1Object ()        | 4.000μs (±0.00%) | 4.000μs (±0.00%) | 2.803mb         | 2.803mb    |
| benchHydrate1000Objects ()    | 2.660ms (±0.00%) | 2.651ms (±0.00%) | 2.869mb         | 2.869mb    |
| benchExtract1000Objects ()    | 2.440ms (±0.00%) | 2.479ms (±0.00%) | 2.829mb         | 2.829mb    |
| benchHydrate1000000Objects () | 1.525s (±0.00%)  | 1.532s (±0.00%)  | 2.869mb         | 2.869mb    |
| benchExtract1000000Objects () | 1.458s (±0.00%)  | 1.446s (±0.00%)  | 2.829mb         | 2.829mb    |
+-------------------------------+------------------+------------------+-----------------+------------+

StackHydratorWithCryptographyBench
==================================

+-------------------------------+------------------+------------------+-----------------+------------+
|                               | time (kde mode)                     | memory                       |
+-------------------------------+------------------+------------------+-----------------+------------+
| subject                       | Tag: <current>   | Tag: base        | Tag: <current>  | Tag: base  |
+-------------------------------+------------------+------------------+-----------------+------------+
| benchHydrate1Object ()        | 5.200μs (±0.00%) | 5.200μs (±0.00%) | 2.797mb         | 2.797mb    |
| benchExtract1Object ()        | 5.400μs (±0.00%) | 5.200μs (±0.00%) | 2.797mb         | 2.797mb    |
| benchHydrate1000Objects ()    | 3.705ms (±0.00%) | 3.746ms (±0.00%) | 2.964mb         | 2.964mb    |
| benchExtract1000Objects ()    | 3.516ms (±0.00%) | 3.486ms (±0.00%) | 2.977mb         | 2.977mb    |
| benchHydrate1000000Objects () | 2.281s (±0.00%)  | 2.310s (±0.00%)  | 3.084mb         | 3.084mb    |
| benchExtract1000000Objects () | 2.233s (±0.00%)  | 2.244s (±0.00%)  | 2.974mb         | 2.974mb    |
+-------------------------------+------------------+------------------+-----------------+------------+

HydratorWithCryptographyBench
=============================

+-------------------------------+-------------------+-------------------+-----------------+------------+
|                               | time (kde mode)                       | memory                       |
+-------------------------------+-------------------+-------------------+-----------------+------------+
| subject                       | Tag: <current>    | Tag: base         | Tag: <current>  | Tag: base  |
+-------------------------------+-------------------+-------------------+-----------------+------------+
| benchHydrate1Object ()        | 88.400μs (±0.00%) | 90.000μs (±0.00%) | 2.887mb         | 2.887mb    |
| benchExtract1Object ()        | 11.200μs (±0.00%) | 11.000μs (±0.00%) | 2.798mb         | 2.798mb    |
| benchHydrate1000Objects ()    | 4.732ms (±0.00%)  | 4.700ms (±0.00%)  | 3.076mb         | 3.076mb    |
| benchExtract1000Objects ()    | 6.161ms (±0.00%)  | 6.175ms (±0.00%)  | 2.975mb         | 2.975mb    |
| benchHydrate1000000Objects () | 2.794s (±0.00%)   | 2.879s (±0.00%)   | 3.076mb         | 3.076mb    |
| benchExtract1000000Objects () | 4.332s (±0.00%)   | 4.264s (±0.00%)   | 2.975mb         | 2.975mb    |
+-------------------------------+-------------------+-------------------+-----------------+------------+

This comment gets update everytime a new commit comes in!

@DavidBadura DavidBadura added this to the 1.24.0 milestone May 2, 2026
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.

1 participant