Skip to main content

Releasing 0.10

· 3 min read
The LittleHorse Council
The Council of LittleHorse Maintainers

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 WfRun search.
  • Fixed display of TaskRuns with the EXCEPTION and ERROR status.
  • Showing VariableMutations on the Edge 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 to 3.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.