metafora icon indicating copy to clipboard operation
metafora copied to clipboard

Distributed long running work system in Go

Results 32 metafora issues
Sort by recently updated
recently updated
newest added

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,...

enhancement
performance

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...

bug

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....

enhancement
etcd

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...

enhancement
RFC

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...

enhancement
etcd
RFC

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...

bug

## 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...

etcd

## 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...