Closed vTinMan closed 1 year ago
Hi @vTinMan, thanks for taking the time to make this contribution!
However, I think it's a little too early in dry-operation's life to incorporate something like this. We're still putting the basics together. We’ll want to wait until all the basics are in place and feeling good before we consider things like this.
This PR also introduces too many new things at once, with very little to explain them: a plugin system (with some references to dry-system, which confuse me a little), a new Routine
user-facing entry point, as well as the interaction between it and operations.
If you'd like to advocate for this kind of feature to be included in dry-operation one day, I think it'd be good if you could share a post on our forum better explaining your use cases and motivations behind this PR. Focus on what you’d like to achieve in the end, rather than an exact implementation. I think there’ll be various different implementation paths we might want to consider (if we did something like this at all, I can’t promise anything right now!), and having a clear pitch laid out will help us do that.
For example, I think you could already achieve what you want (within any kind of classes) using dry-effects. Have you given that a try?
In general, posting on the forum would be our recommended approach for any large features you might want to add to our gems, because then we could give you guidance before you commit too much time to putting together code.
Overview
Routine context feature based on fiber storage.
Useful to have this tool when we develop a project with number of vendors or customers with their own scope of settings and data scopes and we need to implement complex multi-component operations including several classes related to vendor properties.
Details
Simple draft example: