Faktory
temporal
Our great sponsors
Faktory | temporal | |
---|---|---|
23 | 16 | |
5,494 | 9,806 | |
1.2% | 5.3% | |
7.7 | 9.8 | |
2 days ago | 7 days ago | |
Go | Go | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Faktory
- Faktory: Language-agnostic persistent background job server
-
Ruby 3.3
Mike Perham (the sidekiq maintainer) also maintains the less well known faktory[0] which is language agnostic and has runners for both Ruby and Python
[0] https://github.com/contribsys/faktory
-
Software Disenchantment
Zen and the Art of Motorcycle Maintenance's entire thesis is "What is Quality?" How do you define it? How does it come about?
You can still get software quality but you have to be willing to devote time and effort to it. The binary for my modern, commercial background job engine written in Go, Faktory, is 5MB in size.
https://github.com/contribsys/faktory/releases/tag/v1.8.0
I know when I see an iOS app that is 5-10MB in size, I know it was crafted by someone who cares.
-
Building a PHP client for Faktory, Part 1
My recent queue foray put me on the scent of Faktory, a language-agnostic queue server made by Sidekiq's author. I noticed there wasn't a good PHP client (the one linked in the docs is pretty old), so I decided to build one.
-
What is the best task queue?
At work we use https://github.com/contribsys/faktory
-
New Gem for background job processing from Ruby/Rails -> Crystal
Have you heard of faktory before? Made by the sidekiq guy and allows you to d a similar thing.
- Are there any actively maintained or official Golang libraries for managing work queues?
-
Celery + RabbitMQ alternatives
I’ve started using Faktory with the Faktory Worker Python it also supports workers in any language.
-
Golang task queue
Try https://github.com/contribsys/faktory which is written in go but you interact with it as a service.
-
What are some popular background job processing frameworks in the Rust ecosystem?
There is faktory, from the author of Sidekiq, which is language-agnostic (the server is written in Go).
temporal
-
Rethinking Serverless with Flame
I don't know if I agree with the argument regarding durability vs elastic execution. If I can get both (with a nice API/DX) via something like Temporal (https://github.com/temporalio/temporal), what's the drawback here?
-
Who's hiring developer advocates? (December 2023)
Link to GitHub -->
-
temporal VS laravel-workflow - a user suggested alternative
2 projects | 23 Aug 2023
-
Scaling Temporal: The Basics
However, as we mentioned, each shard needs management. Part of the management includes a cache of Workflow histories for that shard. We can see the History pods’ memory usage is rising quickly. If the pods run out of memory, Kubernetes will terminate and restart them (OOMKilled). This causes Temporal to rebalance the shards onto the remaining History pod(s), only to then rebalance again once the new History pod comes up. Each time you make a scaling change, be sure to check that all Temporal pods are still within their CPU and memory requests—pods frequently being restarted is very bad for performance! To fix this, we can bump the memory limits for the History containers. Currently, it is hard to estimate the amount of memory a History pod is going to use because the limits are not set per host, or even in MB, but rather as a number of cache entries to store. There is work to improve this: github.com/temporalio/temporal/issues/2941. For now, we’ll set the History memory limit to 8GB and keep an eye on them—we can always raise it later if we find the pod needs more.
-
Temporal .NET – Deterministic Workflow Authoring in .NET
Correct, the workflow's guarantee to always complete executing independent of hardware failures is dependent on the database not losing data. You host your workflow code with Temporal's Worker library, which talks to an instance of the Temporal Server [1], which is an open-source set of services (hosted by you or by Temporal Cloud), backed by Cassandra, MySQL, or Postgres. [2] So for instance increasing Cassandra's replication factor increases your resilience to disk failure.
[1] https://github.com/temporalio/temporal
[2] https://docs.temporal.io/clusters#persistence
-
Mandala: experiment data management as a built-in (Python) language feature
Re:graph frameworks - thanks for the pointers, hadn't heard about them! I'd heard of temporal which I believe provides a similar memoization capability with the purpose of not losing work in workflows that failed partway through?
-
temporal VS javactrl-kafka - a user suggested alternative
2 projects | 2 Feb 2023
-
Temporal PHP SDK: Scalable and resilent workflow orchestration on PHP
Documentation
-
Developers and Distributed Systems and Dinosaurs, Oh MY!!!
Personally I am leveraging the knowledge and momentum of Replay to dive into the Python SDK, build out a couple of applications to deepen my knowledge around Workflows, Activities, and metrics, and continue inhaling knowledge via the monthly meetup, the application development guide, and documentation. By next year I’ll experience the conference, not as one new to Temporal, but as an expert—maybe even as one of the people helping with the architecture review or running a Birds of a Feather; if anything, I know I look forward to seeing YOU at next year’s event!
- Building financial integration with Cadence in doordash
What are some alternatives?
gocron - Easy and fluent Go cron scheduling. This is a fork from https://github.com/jasonlvhit/gocron
argo - Workflow Engine for Kubernetes
go-quartz - Minimalist and zero-dependency scheduling library for Go
cadence - Cadence is a distributed, scalable, durable, and highly available orchestration engine to execute asynchronous long-running business logic in a scalable and resilient way.
Asynq - Simple, reliable, and efficient distributed task queue in Go
gocelery - Celery Distributed Task Queue in Go
Sidekiq - Simple, efficient background processing for Ruby
flyte - Scalable and flexible workflow orchestration platform that seamlessly unifies data, ML and analytics stacks.
leprechaun - You had one job, or more then one, which can be done in steps
DurableTask - Durable Task Framework allows users to write long running persistent workflows in C# using the async/await capabilities.
sched - A job scheduler for Go with the ability to fast-forward time.
Workflow Core - Lightweight workflow engine for .NET Standard