Thoughts, Advice & Other Writing
Announcing Oban 2.0 and the future of sustaining Oban with Web+Pro.
A technique for running a distinct subset of queues on each node in a cluster.
Using protocols to control notifications for expected Oban job failures.
Monitor jobs as a group with the power of pattern matching and queue introspection.
Keep applications feeling responsive by reporting progress from long running background jobs.
Patterns for recursively scheduled jobs without any duplication and the mechanisms that make it possible.
Learn about finite recursive background jobs through the lense of Oban.
Examine techniques for enforcing unique background jobs with Oban.
Selectively expiring cached records is essential to maintaining the health of large production caches.
Learn the essentials of cache expiration in Rails, and see how fundamental cache key composition is to a performant cache.
A case study on organizing Sidekiq queues, workers, and throttles for stability and higher concurrent throughput.
An introduction into the motiviation and methods behind Knuckles, an extremely fast API caching library.
The PubSub pattern is core to many distributed systems. Learn about the pattern, best practices, and a distinct use case.
Understand the power of Postgres window functions to manipulate data efficiently with Ecto
Achieve application simplicity with zero caching and blazing speed. It isn't the framework or the content that is holding you back, it's the language.
Sidekiq as a background worker is a critical part of any application infrastructure, mastering the various ways to test it is paramount.
Learn how to effectively layer caching around an API endpoint to yield massive performance gains.
Enhancing logs with custom timings illuminates where request time is really being spent.
Instrumentation with ActiveSupport::Notifications is a powerful tool, useful for much more than raw performance benchmarking.
Sometimes migrating data from between Redis instances is necessary and not all of the tools are available.
Mitigate the lack of transactional safety by leaning on discrete background jobs when interfacing with external systems.
Learn lessons of stability and reliability through an exploration of how the Ruby Redis client manages reconnection.
Reconstructing cached data into API responses quickly directly from Redis using Lua scripting.
Boost cache performance and memory consumption in Redis through cache sharding, an intelligent way to utilize the Hash type.
Strategies and configuration tips for making the most value out of Redis as a cache.
Strategies behind building the fastest ActiveSupport compliant cache with Redis and Ruby.
Export queries as CSV straight from PostgreSQL.
Sometimes you do need to build a new wheel, just don't reinvent it.
Applications are services, they need monitoring too.
A zero-downtime technique for reloading the environment within long running processes.
Efficient social ranking within PostgreSQL, or immutable functions are your friend.
Leveraging ES6 Harmony's Proxy object for data presentation.
Lightweight testing with Rack for libraries that integrate with Rails.
Fixing inconsistent timestamp serialization in Rails 4.
Maximizing cache performance when serializing large collections for API endpoints.