Skip to main content

Releasing 0.2.0

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

We are excited to announce the release of 0.2.0! In this release, we added several new features, highlighted by User Tasks, security, and Python support.

Get Started

LittleHorse is free for production use according to the Server-Side Public License!

To get started with LittleHorse OSS, you can:

Additionally, with version 0.2.0, we have released our first two Docker Images:

  • lh-server, the production-ready build of the LittleHorse Server.
  • lh-standalone, a self-contained build of the LittleHorse Server that you can run to get a working LH Installation for local development.

New Features

Release 0.2.0 contains many exciting new features, and we've highlighted a few here.

User Tasks

User Tasks are a massive new feature released in 0.2.0 which allow you to schedule tasks to be executed by a human user alongside tasks that are executed by computers.

In 0.2.0, User Tasks have reached stability, meaning that future releases will be backwards-compatible with the current User Tasks API. We currently have the following features:

  • Assignment of tasks to a User or User Group
  • Reminder Tasks, or TaskRun's that are scheduled some time after a UserTaskRun is scheduled.
  • Automatic reassignment of a UserTaskRun after some period of inactivity.
  • Manual reassignment of a UserTaskRun.
  • UserTaskRun search.
note

The public API for User Tasks is stable in all of the grpc clients and in the Java WfSpec SDK.

The Go and Python grpc clients both support User Tasks. However, neither Python nor Go yet have support for User Tasks in the WfSpec SDK.

Workflow Threading

Release 0.2.0 allows you to use a WAIT_FOR_THREADS node to wait for more than one child thread at one time. For an example, see our Parallel Approval Example on our GitHub.

Future releases will provide backwards-compatible enhancements to this functionality, allowing various strategies for handling failures of individual child threads.

Python Support

We have released an alpha Python SDK! This release contains:

  • Python client in grpc
  • Python Task Worker SDK

Currently, building WfSpec's in Python is not supported. We aim to move python Task Worker support from alpha to beta, and add alpha support for WfSpec development in python, in the 0.3.0 release.

To try out our python task worker client, you can head to Installation Docs and the Task Worker Development Docs.

note

The Python SDK is in the alpha stage, meaning that future releases could break backwards compatibility.

Security

We added beta support for OAuth, TLS, and mTLS in release 0.2.0. The following features graduated to "beta" in this release:

  • TLS encryption for incoming connections on all listeners, configured on a per-listener basis.
  • mTLS to authenticate incoming connections on any listeners, configured on a per-listener basis.
  • OAuth to authenticate incoming connections on any public listener (excluding the inter-server communication port).
info

Beta support means that we will soon add significant functionality, and as such a future release might break backwards compatibility.

However, future releases of a feature in the beta state will most likely be backwards compatible with 0.2.0 barring exceptional circumstances.

Performance

We made several optimizations to our storage management sub-system, reducing the number of put's and get's into our backing state store by roughly 30%. As a result, a LittleHorse Server running with a single partition is capable of scheduling over 1,100 TaskRun's per second.

Go Support

Support for the Go client is now beta. Future releases will maintain compatibility for all features on our documentation.

Release 0.3.0 will close the gap between the Java and Go SDK's, adding features such as:

  • Format Strings for Variable Assignments in the WfSpec SDK
  • User Task support in the WfSpec SDK
  • Configuring Indexes on Variables in the WfSpec SDK

What's Next

We have several exciting features coming soon over the next few releases, including:

  • Fine-grained access controls
  • Backward-compatible improvements to Failure Handling
  • C# support
  • Python support for building WfSpecs

For an enterprise-ready distribution of LittleHorse running in your own datacenter, contact sales@littlehorse.io to inquire about LittleHorse Platform.

For a pay-as-you-go, serverless Managed Service of LittleHorse in the cloud, fill out the LH Cloud Waitlist Form.