Releasing 0.10
The 0.10 release brings with it significant performance and reliability improvements.
New Features
lhctl Binaries and Release Notes
The 0.10.0 release comes with a new Release Page, including lhctl binaries built for ARM, Intel, and Windows.
Reliability during Rebalances
PR #872 improves the reliability of LittleHorse during Kafka Streams rebalances. Previously, if a write request (eg. rpc RunWf) was received just before a rebalance, certain requests would "time out" from the client perspective and return a DEADLINE_EXCEEDED grpc error despite being properly accepted and processed by the server. This PR fixes that issue by redirecting the internal rpc WaitForCommand to the new destination for that command.
Rescue Failed Workflows
PR #883 allows users to restart failed WfRun's via the lhctl rescue command. This is similar to allowing a user to execute mutating SQL queries via a CLI like psql.
With this feature, a user can fix a buggy Task Worker implementation and then restart a failed WfRun and get it to execute the failed TaskRun again via:
lhctl rescue <wfRunId> <threadRunNumber>
mTLS Principals
Previously, only listeners of the type OAUTH supported Principals. The Principal ID was determined by the OAuth Client ID or User Id. Release 0.10 introduces the ability to infer a Principal on an MTLS listener, where the Principal ID comes from the Common Name on the client certificate.
PR #874 by one of our newer team members, Jacob Snarr, introduced this feature, enabling users that standardize on SSL authentication to continue using that pattern with Littlehorse.
Dashboard Enhancements
The 0.10 release includes multiple enhancements to the Admin Dashboard, including:
- Ability to search for
WfRun's by their variables. - Improved
WfRunsearch. - Fixed display of
TaskRuns with theEXCEPTIONandERRORstatus. - Showing
VariableMutations on theEdgein the dashboard.
What's Next?
We will need one more minor release before finally releasing 1.0. We need the following:
- Upgrade
org.apache.kafka:kafka-streamsto3.8.0to address several critical reliability bugs (we are waiting for the official release). - Conduct new load tests and soak tests against the new version of Kafka Streams.
- Review our Go and Python SDK's in-depth to ensure proper semantics.
After that, we will be ready to commit to the backwards compatibility guarantees required by Semantic Versioning. We will also release a blog post with our planned release schedule and support schedule.