Skip to content

Comments

Add Servactory to Business logic#1186

Open
afuno wants to merge 1 commit intomarkets:masterfrom
afuno:gem/servactory
Open

Add Servactory to Business logic#1186
afuno wants to merge 1 commit intomarkets:masterfrom
afuno:gem/servactory

Conversation

@afuno
Copy link

@afuno afuno commented Feb 20, 2026

Project

Servactory

What is this Ruby project?

Servactory is a framework for building reliable service objects of any complexity with a structured approach to organizing business logic. It features a unique three-tier attribute system (input, internal, output) with strict type enforcement, sequential action composition via make, built-in validation, pattern matching support, and Rails generators. The project also provides a dedicated ecosystem including RuboCop rules, RSpec matchers, and OpenTelemetry instrumentation.

What are the main difference between this Ruby project and similar ones?

  • Unlike Interactor's shared mutable context or ActiveInteraction's two-tier model, Servactory introduces a three-tier attribute system (input/internal/output) with strict type enforcement, making data flow explicit and type-safe.
  • Supports modern Ruby features that other service object libraries in this category don't: pattern matching (deconstruct_keys), RBS type signatures, and Rails generators.
  • Comes with a dedicated ecosystem: RuboCop rules (servactory-rubocop), RSpec matchers, OpenTelemetry instrumentation, and comprehensive documentation at servactory.com.
  • Actively maintained with 138 releases, 110,000+ downloads (meets the 30k quality threshold), latest release v3.0.2 (February 2026).

- Included Servactory under the service object tools section.
- Servactory provides tools for building reliable and complex service objects.
@afuno afuno marked this pull request as ready for review February 20, 2026 12:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant