<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/background-batches-with-jp-camara-cqae6hlva" -->

---
title: Background Batches with JP Camara | daily.dev
description: JP Camara discusses bringing batch processing to Solid Queue. Batches let developers treat a group of jobs as a unit, track success and failure, and trigger...
canonical: https://daily.dev/posts/background-batches-with-jp-camara-cqae6hlva
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Background Batches with JP Camara | daily.dev
og:description: JP Camara discusses bringing batch processing to Solid Queue. Batches let developers treat a group of jobs as a unit, track success and failure, and trigger...
og:url: https://daily.dev/posts/background-batches-with-jp-camara-cqae6hlva
og:image: https://api.daily.dev/og/posts/CQae6HlvA.png
og:image:alt: Background Batches with JP Camara
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Background Batches with JP Camara

**[RUBYLAND](https://daily.dev/sources/rubyla)** · 2 min read · 0 upvotes · 0 comments

## Summary

JP Camara discusses bringing batch processing to Solid Queue. Batches let developers treat a group of jobs as a unit, track success and failure, and trigger callbacks when processing finishes. He covers implementation challenges like database transactions, jobs deferred until commit, and reducing tracking overhead, plus Mission Control Jobs for visually inspecting batch progress. He also introduces YRBY, his project for real-time collaborative editing in Rails, with Ruby bindings to a Rust library that let him integrate with Action Cable or AnyCable without a separate Node.js server. He shares how his team at Wealthbox uses RubyLLM to work with multiple AI providers.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.therubyonrailspodcast.com/558>

## Questions this post answers

### What do batches do in Solid Queue for Rails background jobs?

Batches let you treat a group of Solid Queue jobs as a single unit, tracking overall success and failure and triggering callbacks once all jobs finish processing. The feature addresses coordinating workflows that span many background jobs, handling database transaction behavior like jobs deferred until a transaction commits, while trying to minimize the performance overhead of tracking batch state.

_Rails developers coordinating multi-job workflows can track Solid Queue updates like this on daily.dev._

### How can I add real-time collaborative editing to a Rails app without running a separate Node.js server?

YRBY is a project that brings real-time collaborative editing, similar to Google Docs, to Rails applications using conflict-free replicated data types (CRDTs). It uses Ruby bindings to a Rust library and integrates directly with Action Cable or AnyCable, avoiding the need for a separate Node.js server. It also supports encrypted collaborative text and editor integration.

_Developers evaluating CRDT-based collaboration options for Rails can follow projects like YRBY on daily.dev._

### What is RubyLLM used for in production Ruby applications?

RubyLLM is a Ruby library used at Wealthbox to work with multiple AI providers through an expressive, approachable interface. It helps teams integrate AI features into their Ruby applications more easily by abstracting differences between providers, and it is cited as a tool that helps sustain momentum on open source Ruby projects.

_Ruby developers adding AI provider integrations can track libraries like RubyLLM on daily.dev._

## Similar posts on daily.dev

- [A Guide to using Batches in SolidQueue](https://daily.dev/posts/a-guide-to-using-batches-in-solidqueue-4ksr1xqij) · Ruby Flow · 0 upvotes · 0 comments
- [Rails 8 Solid Queue: Database-Backed Background Jobs](https://daily.dev/posts/rails-8-solid-queue-database-backed-background-jobs-ggbxv8ocu) · Saeloun · 0 upvotes · 0 comments
- [GoodJob, Solid Queue, Sidekiq, Active Job, in 2026](https://daily.dev/posts/goodjob-solid-queue-sidekiq-active-job-in-2026-yvn44jn5s) · RUBYLAND · 0 upvotes · 0 comments
- [GitHub - nicolasva/solid-jobs](https://daily.dev/posts/github---nicolasva-solid-jobs-3psnafm9f) · Ruby Flow · 0 upvotes · 0 comments
- [Fair by design: orchestrating background jobs in Ruby—Martian Chronicles, Evil Martians’ team blog](https://daily.dev/posts/fair-by-design-orchestrating-background-jobs-in-ruby-martian-chronicles-evil-martians-team-blog-piyszlqky) · Martian Chronicles · 0 upvotes · 0 comments

---

Tags: [#rails](https://daily.dev/tags/rails), [#crdt](https://daily.dev/tags/crdt)

[View this post on daily.dev](https://daily.dev/posts/background-batches-with-jp-camara-cqae6hlva)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Background Batches with JP Camara","url":"https://daily.dev/posts/background-batches-with-jp-camara-cqae6hlva","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/background-batches-with-jp-camara-cqae6hlva"},"datePublished":"2026-10-28T10:28:25.773Z","dateModified":"2026-10-28T14:58:19.202Z","description":"JP Camara discusses bringing batch processing to Solid Queue. Batches let developers treat a group of jobs as a unit, track success and failure, and trigger...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/68e0410308a69ab4d689c21b1eec5bb3?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/68e0410308a69ab4d689c21b1eec5bb3?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"RUBYLAND","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"RUBYLAND","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/rubyla","url":"https://daily.dev/sources/rubyla"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/background-batches-with-jp-camara-cqae6hlva","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"rails,crdt","timeRequired":"PT2M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"RUBYLAND","item":"https://daily.dev/sources/rubyla"},{"@type":"ListItem","position":3,"name":"Background Batches with JP Camara"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/background-batches-with-jp-camara-cqae6hlva#faq","mainEntity":[{"@type":"Question","name":"What do batches do in Solid Queue for Rails background jobs?","acceptedAnswer":{"@type":"Answer","text":"Batches let you treat a group of Solid Queue jobs as a single unit, tracking overall success and failure and triggering callbacks once all jobs finish processing. The feature addresses coordinating workflows that span many background jobs, handling database transaction behavior like jobs deferred until a transaction commits, while trying to minimize the performance overhead of tracking batch state. Rails developers coordinating multi-job workflows can track Solid Queue updates like this on daily.dev."}},{"@type":"Question","name":"How can I add real-time collaborative editing to a Rails app without running a separate Node.js server?","acceptedAnswer":{"@type":"Answer","text":"YRBY is a project that brings real-time collaborative editing, similar to Google Docs, to Rails applications using conflict-free replicated data types (CRDTs). It uses Ruby bindings to a Rust library and integrates directly with Action Cable or AnyCable, avoiding the need for a separate Node.js server. It also supports encrypted collaborative text and editor integration. Developers evaluating CRDT-based collaboration options for Rails can follow projects like YRBY on daily.dev."}},{"@type":"Question","name":"What is RubyLLM used for in production Ruby applications?","acceptedAnswer":{"@type":"Answer","text":"RubyLLM is a Ruby library used at Wealthbox to work with multiple AI providers through an expressive, approachable interface. It helps teams integrate AI features into their Ruby applications more easily by abstracting differences between providers, and it is cited as a tool that helps sustain momentum on open source Ruby projects. Ruby developers adding AI provider integrations can track libraries like RubyLLM on daily.dev."}}]}
```

