-
-
Notifications
You must be signed in to change notification settings - Fork 4.1k
Switch default event rule engine from python to java #11807
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
S3 Image Test Results (AMD64 / ARM64) 2 files 2 suites 4m 7s ⏱️ Results for commit 77968e6. ♻️ This comment has been updated with latest results. |
LocalStack Community integration with Pro 2 files ± 0 2 suites ±0 1h 46m 16s ⏱️ + 2m 48s Results for commit 5a5d659. ± Comparison against base commit 3de5aa9. This pull request removes 78 and adds 156 tests. Note that renamed tests count towards both.
This pull request removes 29 skipped tests and adds 58 skipped tests. Note that renamed tests count towards both.
♻️ This comment has been updated with latest results. |
00a6e18
to
1f44d52
Compare
cf6521d
to
5a5d659
Compare
This reverts commit 03d2023.
a53d955
to
77968e6
Compare
Currently, only patch changes are allowed on master. Your PR labels (semver: minor) indicate that it cannot be merged into the master at this time. |
We decided against switching the default rule engine to avoid compatibility issues with the StepFunctions JPype integration. Therefore, we are closing this PR in favor of just adding the analytics in #11928 |
Motivation
Our current Python-native event rule engine has many parity limitations compared to the Java-based event rule engine offering perfect AWS parity. This engine is used for:
This switch implies that we pick AWS parity over performance by default, but still offer users the option to choose.
Users behind enterprise proxies might also be interested in switching to the python-native event rule engine if they cannot download the JAR files from Maven central as reported in this issue #11299
The new Java-based rule engine was introduced in #10615 after adding an extensive test suite in #10599 and discovering many different implementations in LocalStack.
Changes
EVENT_RULE_ENGINE
from python to javaTesting
Running a full localstack-ext test suite against this PR is highly recommended to detect potential incompatibilities with Kinesisanalyticsv2 (as initially noticed in #10615):
Limitations
The Java-based event rule engine has a performance penalty compared to the native Python implementation, especially for tail latency (spikes up to ~200ms).
For performance-sensitive users, we recommend opting in to the Python event rule engine if possible using
EVENT_RULE_ENGINE=python
.