-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
CloudFormation v2 Engine: Runtime Caching Support #12807
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
Conversation
LocalStack Community integration with Pro 2 files ± 0 2 suites ±0 21m 59s ⏱️ - 1h 24m 26s Results for commit a936c13. ± Comparison against base commit 019d5ec. This pull request removes 4010 and adds 1 tests. Note that renamed tests count towards both.
This pull request removes 211 skipped tests and adds 1 skipped test. Note that renamed tests count towards both.
|
Test Results (amd64) - Integration, Bootstrap 5 files 5 suites 34m 30s ⏱️ Results for commit a936c13. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR was pair-reviewed with @MEPalma .
Motivation
The introduction of the CloudFormation v2 engine laid the foundation for a redesigned engine capable of accurately determining update requirements between CloudFormation deployments, while also enabling parallel execution during updates. However, the new engine does not store or cache the evaluation of previous change set operations. This leads to issues, such as the need to reevaluate global macros from earlier template versions. This process fails if the macro is no longer available, or it can result in corrupted states if the macro has been modified.
The absence of caching also forces full reevaluation of both template versions during a chain of change set updates, even when this information could simply be read from cache.
This PR introduces support for caching, resolving issues related to global transformations. It also adds utility functions for downstream processors to take advantage of the cache, applies these utilities in several scenarios within the preprocessor, and includes a negative test case for the global transformation scenario.
Changes