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 Principal
s. 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
WfRun
search. - Fixed display of
TaskRun
s with theEXCEPTION
andERROR
status. - Showing
VariableMutation
s on theEdge
in 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-streams
to3.8.0
to 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.