Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move away from relying on ExecutionContext in Grains dependencies and OnActivateAsync() #265

Closed
einari opened this issue Apr 23, 2022 · 2 comments
Labels
memory Issues that cause the system to use more memory than necessary performance Improvements of performance reliability Capabilities related to guaranteeing reliability in a running system typically related to up-time technical debt
Milestone

Comments

@einari
Copy link
Contributor

einari commented Apr 23, 2022

Today we are relying on the execution context to be set and correct. This turns out to be hard with the Orleans call model, besides our grains now have all the information on their compound keys telling it which microservice & tenant they belong to.

Any underlying storage mechanisms we depend on should instead therefor have a provider that can provide it for the known microservice and/or tenant.

Should be looked at when doing #264

einari added a commit that referenced this issue Apr 23, 2022
@einari einari added the reliability Capabilities related to guaranteeing reliability in a running system typically related to up-time label Sep 22, 2022
@einari
Copy link
Contributor Author

einari commented Feb 5, 2023

By doing this we should also remove the call filters for execution context.
This should improve memory utilization and performance. We're seeing the Orleans serializer kicked in for the execution context all the time, which is completely not needed.

@einari einari added memory Issues that cause the system to use more memory than necessary performance Improvements of performance labels Feb 5, 2023
@einari
Copy link
Contributor Author

einari commented Feb 5, 2023

One thing to remember is logging, making sure we get enough metadata on log messages to identity MicroserviceId, TenantId, CorrelationId, CausationId and CausedBy. We're today doing this through a custom Serilog extension which is linked to the execution context.

@einari einari added this to the 10.0.0 milestone Aug 16, 2023
@einari einari closed this as completed Jan 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
memory Issues that cause the system to use more memory than necessary performance Improvements of performance reliability Capabilities related to guaranteeing reliability in a running system typically related to up-time technical debt
Projects
None yet
Development

No branches or pull requests

1 participant