Tim Barrass bio photo

Tim Barrass

Freelance C# and distributed systems developer.

Email Twitter LinkedIn Github Stackoverflow



Distributed compute infrastructures often need to manage calculations and data operations that are chained to form workflows expressed as a DAG. redis.workflow abstracts the management of state associated with processing workflows, placing the state and operations on that state into Redis. By design redis.workflow assumes a real enterprise scale environment, and is able to handle workflow fails at multiple levels, as well as enabling a set of operations that are frequently required in non-trivial contexts, like workflow pause, abandon, release and restart.

redis.workflow currently has a C# client API that dynamically configures a suitable redis instance.


With curious regularity I need tools that do each of three things: 1/ generate a count timeseries from a set of paired start-and-end timestamps; 2/ quickly generate a histogram on the command line; 3/ characterise the maximum concurrency of a DAG. This is a set of tools to do just those things.

Alembic.Tools is a set of simple tools in C#.


A lightweight framework for gathering metrics, either with WMI queries, DB queries, or with custom plugin data query classes. It's loosely inspired by RRDTool, and maintains custom in-memory and persisted circular databases of each metric. It's primarily useful in development environments.

Alembic.Metrics is a C# framework that enables gathering of metrics.