Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Message from discussion Hiera should have an save API

Received: by 10.68.125.201 with SMTP id ms9mr834036pbb.3.1336519059046;
        Tue, 08 May 2012 16:17:39 -0700 (PDT)
X-BeenThere: puppet-dev@googlegroups.com
Received: by 10.68.116.169 with SMTP id jx9ls788804pbb.5.gmail; Tue, 08 May
 2012 16:17:37 -0700 (PDT)
Received: by 10.68.125.201 with SMTP id ms9mr833970pbb.3.1336519057336;
        Tue, 08 May 2012 16:17:37 -0700 (PDT)
Received: by 10.68.125.201 with SMTP id ms9mr833968pbb.3.1336519057318;
        Tue, 08 May 2012 16:17:37 -0700 (PDT)
Return-Path: <a...@puppetlabs.com>
Received: from mail-pb0-f50.google.com (mail-pb0-f50.google.com [209.85.160.50])
        by gmr-mx.google.com with ESMTPS id rq3si4828229pbb.1.2012.05.08.16.17.37
        (version=TLSv1/SSLv3 cipher=OTHER);
        Tue, 08 May 2012 16:17:37 -0700 (PDT)
Received-SPF: pass (google.com: domain of a...@puppetlabs.com designates 209.85.160.50 as permitted sender) client-ip=209.85.160.50;
Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of a...@puppetlabs.com designates 209.85.160.50 as permitted sender) smtp.mail=a...@puppetlabs.com; dkim=pass header...@puppetlabs.com
Received: by pbbrr4 with SMTP id rr4so8049592pbb.9
        for <puppet-dev@googlegroups.com>; Tue, 08 May 2012 16:17:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=puppetlabs.com; s=google;
        h=from:mime-version:content-type:subject:date:in-reply-to:to
         :references:message-id:x-mailer;
        bh=hMfIXBY8J0IreiS9fu8I5v8dVidOEdDDE8rN8VHZZCw=;
        b=OuIAxr9AZre5TwxSbsMEcJfWbb8nh+MgmYn+lPP3ZIk657IMciODFRH6Ib4j4mqv2Y
         MOJ9gyBHkjayFH7KYnBw8VGhj7Zo5aue2KnBKJUPJ7Eqkubohtfn7mKza1wedBpEvYhU
         cVnfHmYxV7D2b6NNytzwejhDcay30ILImUx0I=
        d=google.com; s=20120113;
        h=from:mime-version:content-type:subject:date:in-reply-to:to
         :references:message-id:x-mailer:x-gm-message-state;
        bh=hMfIXBY8J0IreiS9fu8I5v8dVidOEdDDE8rN8VHZZCw=;
        b=EWKa6+7rNyFEhoIblGbE73pwTLerBtCh/1W3fIb8X/jB+hwTY+BYU7poAjVMagd4OL
         lYEb+95Gp+rnUSSo7S4QC2ZD6Zz2hjkP+hw+Ec/6POyM2uX7ptDfXSuz6/A+z2Pd7C14
         BgTfaHHlcD7VwiKLvpDArvdnsLe/IyWei0MOze54Z9oY/wONhzCcDehF1LNcpann3CXK
         8ldpI3iOwAeObJEcAh9pFgjuckRoSd2gdHimgWm9t6NuORLBlHJz7yCb+LzOmReNAtso
         J2uB8bN9/y6w3pctsWdmkiGgTHTF7yRpZUrdCjTXBEQT+dnIQx7H7q1TODuqSBlW+qSw
         TTew==
Received: by 10.68.228.132 with SMTP id si4mr1761485pbc.86.1336519056981;
        Tue, 08 May 2012 16:17:36 -0700 (PDT)
Return-Path: <a...@puppetlabs.com>
Received: from [192.168.100.191] ([74.85.255.4])
        by mx.google.com with ESMTPS id ov3sm3833704pbb.35.2012.05.08.16.17.35
        (version=TLSv1/SSLv3 cipher=OTHER);
        Tue, 08 May 2012 16:17:36 -0700 (PDT)
From: Andrew Parker <a...@puppetlabs.com>
Mime-Version: 1.0 (Apple Message framework v1257)
Content-Type: multipart/alternative; boundary="Apple-Mail=_77798E1A-0B97-438E-A4FC-CBE01BA3278B"
Subject: Re: [Puppet-dev] Hiera should have an save API
Date: Tue, 8 May 2012 16:17:33 -0700
In-Reply-To: <CAOXx1vF1VwbN44by4f1Uz+CvibntqaivHS3THLWnj5hz-Rn...@mail.gmail.com>
To: puppet-dev@googlegroups.com
References: <CAFAW1H=6YH042LcL68M07T96W2MjLCSZFvRHVjq3to4DKLy...@mail.gmail.com> <1554262206.2435.1335893524975.JavaMail.r...@zimbra1.devco.net> <20973326.477.1335919935947.JavaMail.geo-discussion-forums@pbcut8> <CAFAW1Hk--OuSJ+FUs6TLCZ7NjjZZFr+scjo1ZBMf-trnmkA...@mail.gmail.com> <CAOXx1vF1VwbN44by4f1Uz+CvibntqaivHS3THLWnj5hz-Rn...@mail.gmail.com>
Message-Id: <B403651A-AFF5-4DAA-9C43-8BA2C1624...@puppetlabs.com>
X-Mailer: Apple Mail (2.1257)
X-Gm-Message-State: ALoCoQnld6vFVNFcsbE6X/6+N96WI34gBE4CpsB+Ehb4PSxl8JIqNdmVNQLS1TkfWsWp1iwGBwNd


--Apple-Mail=_77798E1A-0B97-438E-A4FC-CBE01BA3278B
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=iso-8859-1

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.

On May 8, 2012, at 4:04 PM, Jeff McCune wrote:

> On Tue, May 8, 2012 at 2:59 PM, Daniel Pittman <dan...@puppetlabs.com> =
wrote:
> > The idea is that this simple save function would be behind a REST =
API like
> > the one you mention. Do the hard work of modeling and capturing data =
then
> > make a call to Hiera#save. If a REST API for Hiera is needed we can =
build
> > one.
>=20
> ...but the save function proposed is too abstract from the reality of
> data storage to be able to do that.  Each backend needs additional
> context - or someone to write a custom back-end for their site, ever
> time - to be effective.
>=20
> What additional context is necessary?
>=20
> Why would custom back ends be necessary if the default one we use =
supports writability?
> =20
> This is a good idea, but at the wrong level of abstraction.
>=20
> I'm not yet convinced this is the wrong level of abstraction.  If I =
understand your original email, you mentioned building tools that =
understand the semantics of specific back end storage systems in order =
to write data into the system.  That seems to defeat the whole point of =
a robust plugin system.
>=20
> If read operations are good enough to warrant abstraction, surely =
write operations are too.  Right?
>=20
> -Jeff
>=20
> --=20
> You received this message because you are subscribed to the Google =
Groups "Puppet Developers" group.
> To post to this group, send email to puppet-dev@googlegroups.com.
> To unsubscribe from this group, send email to =
puppet-dev+unsubscribe@googlegroups.com.
> For more options, visit this group at =
http://groups.google.com/group/puppet-dev?hl=3Den.


--Apple-Mail=_77798E1A-0B97-438E-A4FC-CBE01BA3278B
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=iso-8859-1

<html><head></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">I'll =
chime in on this now, I suppose.<div><br></div><div>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.</div><div><br><div><div>On May 8, 2012, at 4:04 PM, =
Jeff McCune wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite">On Tue, =
May 8, 2012 at 2:59 PM, Daniel Pittman <span dir=3D"ltr">&lt;<a =
href=3D"mailto:dan...@puppetlabs.com" =
target=3D"_blank">dan...@puppetlabs.com</a>&gt;</span> wrote:<br><div =
class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0 =
0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class=3D"im">&gt; The idea is that this simple save function would =
be behind a REST API like</div><div class=3D"im">
&gt; the one you mention. Do the hard work of modeling and capturing =
data then<br>
&gt; make a call to Hiera#save. If a REST API for Hiera is needed we can =
build<br>
&gt; one.<br>
<br>
</div>...but the save function proposed is too abstract from the reality =
of<br>
data storage to be able to do that. &nbsp;Each backend needs =
additional<br>
context - or someone to write a custom back-end for their site, ever<br>
time - to be effective.<br></blockquote><div><br></div><div>What =
additional context is necessary?</div><div><br></div><div>Why would =
custom back ends be necessary if the default one we use supports =
writability?</div><div>

&nbsp;</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 =
.8ex;border-left:1px #ccc solid;padding-left:1ex">
This is a good idea, but at the wrong level of =
abstraction.</blockquote><div><br></div><div>I'm not yet convinced this =
is the wrong level of abstraction. &nbsp;If I understand your original =
email, you mentioned building tools that understand the semantics of =
specific back end storage systems in order to write data into the =
system. &nbsp;That seems to defeat the whole point of a robust plugin =
system.</div>

<div><br></div><div>If read operations are good enough to warrant =
abstraction, surely write operations are too. =
&nbsp;Right?</div><div><br></div><div>-Jeff</div></div><div><br =
class=3D"webkit-block-placeholder"></div>

-- <br>
You received this message because you are subscribed to the Google =
Groups "Puppet Developers" group.<br>
To post to this group, send email to <a =
href=3D"mailto:puppet-dev@googlegroups.com">puppet-dev@googlegroups.com</a=
>.<br>
To unsubscribe from this group, send email to <a =
href=3D"mailto:puppet-dev+unsubscribe@googlegroups.com">puppet-dev+unsubsc=
ribe@googlegroups.com</a>.<br>

For more options, visit this group at <a =
href=3D"http://groups.google.com/group/puppet-dev?hl=3Den">http://groups.g=
oogle.com/group/puppet-dev?hl=3Den</a>.<br>


</blockquote></div><br></div></body></html>=

--Apple-Mail=_77798E1A-0B97-438E-A4FC-CBE01BA3278B--