Skip to content
Mike Perham edited this page Aug 20, 2018 · 3 revisions

Faktory 1.0 will switch from RocksDB storage to an "embedded" version of Redis. Redis gives us several advantages over RocksDB:

  • Copious documentation - RocksDB is a black box and hugely painful to configure correctly. No one outside of Facebook knows how to properly administer it.
  • Go-native - RocksDB is C++ and requires CGo to compile, making binaries larger and platform-specific. Builds will be much faster and easier to debug with Redis.
  • Real-time replication - RocksDB supports point-in-time backups but does not provide real-time stream of changes to a remote replica. This makes it easy to lose data if running in an unreliable environment (e.g. most cloud systems).

It is possible replication will be a commercial feature of Faktory Pro. My thinking: if you need high availability and reliability, you should have a budget for good tools and support.

Drawbacks:

  • The Redis command set is not specifically tuned for Faktory so some current Faktory features are harder than necessary or will need to be removed. A reliable pop operation from multiple queues is overly difficult, job prioritization is slow, etc.
  • Performance is harder to ensure. Faktory will require a named socket connection to Redis, ensuring that Redis is running on localhost and therefore guaranteed to be fast.
Clone this wiki locally