metafora
metafora copied to clipboard
Distributed long running work system in Go
Hi, we updated some exported function comments based on best practices from [Effective Go](https://golang.org/doc/effective_go.html). It’s admittedly a relatively minor fix up. Does this help you?
PR #123 added really naive logic to delay task claiming for the FairBalancer because recent changes made it so overloaded nodes could happily keep winning claim races. The hack works,...
Right now the following can occur: - Task goes to sleep at 1am until 3am - Task has an error at 2am* - Default error handler is used which retries...
when mc.kvc.Get succ, err will be nil and Nodes() will return nil
etcd 2.3 added a new API for refreshing TTLs without notifying watchers. This would dramatically cut down on the number of etcd events every single metafora node has to process....
I've been toying with verifying Metafora's correctness via etcd (in part using https://github.com/lytics/etcdlog), but in order to analyze the correctness of Metafora's behavior I need to be able to compare...
Right now the `m_etcd` Coordinator handles maintaining the task claim in etcd by heartbeating the claim node before the TTL expires, and calling `Handler#Stop()` if it's unable to maintain the...
If a stateful task handler does not receive on its command chan, the [`Stop()` method can block indefinitely](https://github.com/lytics/metafora/blob/7210c63ca7e4a6b75ae314bf76a0aa917f2813a0/statemachine/statemachine.go#L468) which in turn can block things like the [httputil info handler which...
## Description `m_etcd.ClaimTTL` is critical to ensuring a task is being executed exactly once in a Metafora cluster. Currently the claim TTL is 120s and the claim is actually refreshed...
## Overview Currently Metafora statemachine commands are like UNIX signals, they can be ignored by user code entirely. It would be preferable for commands to persist until user code at...