On Wednesday, December 7, 2016 at 7:54:44 AM UTC-6, Trevor Vaughan wrote:
>
> I was looking through the puppetlabs-concat module as well as some of my 
> modules that have aggregation functionality and I realized that the catalog 
> really shouldn't be sending the intermediary resources to the client.
>

Back in the day, of course, concat fragments were assembled on the client, 
so they needed to be in the catalog.  Imagine my surprise when I 
discovered, just a few minutes ago, that Concat doesn't work like that any 
more.  With that being the case, I'm inclined to agree that the fragment 
resources should not be included in catalogs delivered to clients.  Any 
useful information they convey is redundant, so their net contribution is 
only noise and bloat.


> While I'm not positive, the ability to mark resources as ephemeral *might* 
> go a long way toward solving the 10k+ resources issue.
>
> The idea is that only the final 'aggregation' resource would be present in 
> the catalog and all other resources would be removed right after they are 
> processed.
>
> The main issue that I see with this is in debugging. However, I think this 
> is pretty much the case with concat presently so I don't know that it 
> changes much.
>
> Thoughts?
>


I'm inclined to think that using resources to represent concat fragments is 
no longer appropriate at all.  The module uses resources because Puppet 
provides no other mechanism that can be bent to its purposes, but this is 
really pushing up against the boundary of what a resource is (/ should be / 
has been).  If Puppet needs to provide a repository for computed general 
node data accessible to the catalog compiler, then maybe it would be better 
to stop trying to shoehorn that data into resource-shaped cement shoes.

Don't get me wrong: I *like* the simplicity of having resources as a 
consistent unit of data exchange, and I think that model served well for a 
long time.  But for some time now people have been stretching (and 
sometimes passing) the borders of that model.  Rather than continuing to 
weaken the meaning of "resource", I would prefer to see Puppet's model for 
data exchange extended or even replaced so as to accommodate data that 
aren't packaged as resources in the first place.

To some extent this is a question of semantics.  After all, in what sense 
would or should an ephemeral resource actually be a resource in anything 
but name?  But really that's the point.  We name and categorize things to 
help us reason about them, program with and for them, etc..  The more we 
weaken our concepts, such as "resource", the less useful they become.


John

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-dev/58a174c9-9cbc-4e95-b82c-1d86f97d877c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to