Jeff came over and asked Daniel and I about this. He might be able to give his understanding, as well. My response is below.
On May 9, 2012, at 2:26 PM, Kelsey Hightower wrote: > On Tuesday, May 8, 2012 7:17:33 PM UTC-4, Andy Parker wrote: > I'll chime in on this now, I suppose. > > You are right that both read and write operations are good for abstraction. > The problem comes that comes into play is that read and write operations > usually end up with completely different needs for their abstractions and so > combining them together in a single system can be problematic (this is the > basis for the CQRS architectural design). So although you can combine the > write model and the read model in the same application, they often will have > little to do with each other and so you might as well keep them separate. > > Can you clarify "separate"? Hiera is the thing that has a plugin system and > delates lookups to the backend (plugin). The plugin returns a response. The > plugin can be simple or very complex in how it goes about fetching the data. > The only thing Hiera provides is a common interface for doing lookups. Based > on your response, I'm still not clear why we cannot do the same thing for > save. I can see your argument for why this is a bad thing in general, but why > is it a bad thing for Hiera? > Hiera can do whatever it wants. If it adds an interface for how to write data back to all of its backends, however, it will be either creating a save interface that provides no abstraction or it will limit what is a valid backend to those that can conform to the save interface. Some backends may not be able to be written to at all, in which case you have the problem of backends refusing to implement a portion of the interface. If hiera wants to take a very specific, opinionated stance as to what a good data storage mechanism is for it, then it can, but it will do that at the expense of being able to reasonably implement backends for simply reading from anything that does not fit the specific model. If the puppet layer wants to stay independent of the opinions of the hiera system, then those two issues cannot be combined at the level of puppet. > > -- > You received this message because you are subscribed to the Google Groups > "Puppet Developers" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/puppet-dev/-/6j67wPa8zBQJ. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/puppet-dev?hl=en. -- You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en.
