graphql-batch
Interactor
Our great sponsors
graphql-batch | Interactor | |
---|---|---|
3 | 16 | |
1,404 | 3,315 | |
0.4% | 0.4% | |
6.2 | 0.0 | |
20 days ago | 15 days ago | |
Ruby | Ruby | |
MIT License | 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.
graphql-batch
-
The GraphQL N+1 Problem and SQL Window Functions
After recognizing the problem, we brainstormed options to offload some of the work onto the database server to ultimately reduce the Rails application’s memory consumption. One particularly promising avenue involved SQL window functions. After deciding to pursue SQL window functions, we started our work by considering the WindowKeyLoader example described in the graphql-batch repository.
-
N+1 problem will never be an issue with N1Loader gem
Interesting, I've just been researching Dataloader implementations for Ruby and have between trying to decide between GraphQL::Dataloader, graphql-batch and BatchLoader. I'll give this a look as well. Can you also make API calls inside the loaders?
-
"I'm the CTO of a Growing Rails Startup" Ask Me Anything
This is mainly addressed in the last thing but we cache pretty heavily on our REST APIs and for GraphQL we use the graphql-batch gem pretty heavily. Those two things can go a long way. Make sure you're using an APM like Scout to keep an eye on things and then debug the outliers.
Interactor
-
Introducing StepSequencer: A Non-Monadic Take on Railway-Oriented Programming in Ruby
While there are other libraries out there like Dry-Transaction and Interactor, StepSequencer stands out in its simplicity and flexibility. Here's why:
-
The Decree Design Pattern (Ruby on Rails)
At my current job we use `interactor` which is similar, but simpler, and the precursor to light-service: https://github.com/collectiveidea/interactor
-
Looking for advice on how to do multiple methods depending on params
Thanks for the info. I like the sounds of that article. I think I was sort of thinking along those lines myself but didn't know what to refer to it as. I stumbled on to this as well after reading the article: https://github.com/collectiveidea/interactor.
-
OOP vs. services for organizing business logic: is there a third way?
Interactor
-
How to avoid if/else with different ramifications
You might be looking for an interactor pattern for these services. I've used this gem for similar things before and have had good experiences.
-
Rectify Gem?
FWIW Interactor has only received bugfixes and a single enhancement over the last 4 years: https://github.com/collectiveidea/interactor/blob/master/CHANGELOG.md and before that, the last meaningful change was 8 years ago.
-
SolidService - A service pattern with a simple API
Looks a lot like the Interactor pattern: https://github.com/collectiveidea/interactor
-
What Would be Your Ideal Ruby Tech Stack
I see many senior Ruby developers around me going away from that magicness (like all the validations and callbacks) to move away from fat models, using libs like https://github.com/collectiveidea/interactor and have their own control.
-
Applying the Use Case Pattern with Rails
The Interactor and ActiveInteraction gems are both great libraries for implementing this pattern.
- Utilizando o padrão interactor no Ruby on Rails
What are some alternatives?
graphql-guard - Simple authorization gem for GraphQL :lock:
ActiveInteraction - :briefcase: Manage application specific business logic.
graphql-client - A Ruby library for declaring, composing and executing GraphQL queries
Light Service - Series of Actions with an emphasis on simplicity.
GQLi - Ruby GraphQL Client for Humans
Trailblazer - The advanced business logic framework for Ruby.
moql - Mock GraphQL server for fast reliable integration tests.
dry-transaction - Business transaction DSL
BatchLoader - :zap: Powerful tool for avoiding N+1 DB or HTTP queries
Rectify - Build maintainable Rails apps
Spree Commerce - A headless open source e-commerce platform for global brands
SimpleCommand - A simple, standardized way to build and use Service Objects (aka Commands) in Ruby