<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif; ">
<div>These all sound perfect to me. I'm hoping our PSHB implementation solves that problem. More specifically, the publisher worker that I linked to earlier I think solves most of what you're referring to, and works well with the Google reference hub. There's
 a lot more work to be done, but I think it's on target with what you're suggesting</div>
<div><br>
</div>
<div>Thanks!</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>George Reese <<a href="mailto:george.reese@enstratus.com">george.reese@enstratus.com</a>><br>
<span style="font-weight:bold">Date: </span>Tue, 10 May 2011 12:07:22 -0500<br>
<span style="font-weight:bold">To: </span>Matt Dietz <<a href="mailto:matt.dietz@rackspace.com">matt.dietz@rackspace.com</a>><br>
<span style="font-weight:bold">Cc: </span>"<a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a>" <<a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a>><br>
<span style="font-weight:bold">Subject: </span>Re: [Openstack] Notifications proposal<br>
</div>
<div><br>
</div>
<div>
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
I came into the conversation late and it struck me this proposal was a bit heavier than what I was proposing.
<div><br>
</div>
<div>I agree with letting something outside of Nova do the heavy lifting. Much more scaleable. The base things I would like to see are:</div>
<div><br>
</div>
<div>a) the minimal amount of information to let a subscriber know that there was a change (not the details of the change)</div>
<div>b) only information that is safe to deliver over a public network to an untrusted target </div>
<div>c) that the subscriber be able to be a programmatic endpoint (not simply email/SMS) </div>
<div>d) the subscriber should not assume anything about the message, including its authenticity (it should use its credentials to verify the truth of the message and details of change with provider)</div>
<div><br>
</div>
<div>-George</div>
<div><br>
<div>
<div>On May 10, 2011, at 12:01 PM, Matt Dietz wrote:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif; ">
<div>George,</div>
<div><br>
</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>Unless I'm completely mistaken, I think our proposal satisfies this suggestion. What you have here looks like a slight variation on PSHB. Our stuff is coded such that the responsibility of any
 heavy lifting falls outside of Nova. In our case, we'll be implementing the PubSub publisher externally; I.e. I don't think any of the infrastructure for making PSHB work belongs in Nova. We can then follow all of the other rules of PSHB(feed discovery and
 subscriptions, callbacks etc.)</div>
<div><br>
</div>
<div>Does this make sense?</div>
<div><br>
</div>
<div>Matt</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>George Reese <<a href="mailto:george.reese@enstratus.com">george.reese@enstratus.com</a>><br>
<span style="font-weight:bold">Date: </span>Mon, 9 May 2011 23:17:29 -0500<br>
<span style="font-weight:bold">To: </span>Jorge Williams <<a href="mailto:jorge.williams@rackspace.com">jorge.williams@rackspace.com</a>><br>
<span style="font-weight:bold">Cc: </span>Matt Dietz <<a href="mailto:matt.dietz@rackspace.com">matt.dietz@rackspace.com</a>>, "<a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a>" <<a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a>><br>
<span style="font-weight:bold">Subject: </span>Re: [Openstack] Notifications proposal<br>
</div>
<div><br>
</div>
<div>
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
I think notifications need to be kept really simple. I put out a proposal a few months ago at:
<div><br>
</div>
<div><a href="http://broadcast.oreilly.com/2011/04/proposal-for-cloud-state-notifications.html">http://broadcast.oreilly.com/2011/04/proposal-for-cloud-state-notifications.html</a></div>
<div><br>
</div>
<div>Let the subscribers do any heavy lifting. Just provide them enough information that they can make the right requests.</div>
<div><br>
</div>
<div>-George</div>
<div><br>
<div>
<div>On May 9, 2011, at 10:58 PM, Jorge Williams wrote:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
<br>
<div>
<div>On May 9, 2011, at 6:39 PM, Matt Dietz wrote:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite">
<div bgcolor="#FFFFFF">
<div>Jorge,</div>
<div><br>
</div>
<div>   Thanks for the feedback!</div>
<div><br>
</div>
<div>   Regarding the message format, we actually don't need the unique id in the generic event format because that's implementation specific. The external publisher I've implemented actually does all of the pubsubhubbub specific heavy lifting for you. The
 idea behind keeping this system simple at the nova layer is allowing people to implement anything they'd like, such as emails or paging. </div>
</div>
</blockquote>
<div><br>
</div>
<div>I guess, I'm not seeing the whole picture.  So these are internal messages? Will they cross service boundaries / zones?  I'm sorry I missed the conversation at the summit :-) Is there a blueprint I should be reading? </div>
<div><br>
</div>
<blockquote type="cite">
<div bgcolor="#FFFFFF">
<div><br>
</div>
<div>For categories, were you considering this to be a list? Could you give an example of an event that would span multiple categories?</div>
<div><br>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>From an Atom perspective, I suppose anything a client might want to key in on or subscribe to may be a category.  So "create" may be a category -- a billing layer may key in on all create messages and ignore others. "compute" may also be a category --
 you can aggregate messages from other services so It'd be nice for messages from compute to have their own category.  To my knowledge, atom doesn't have the concept of priority so "WARN" may also be a category.  I suppose if these are internal messages an
 external publisher can split the event_type and priority into individual categories.</div>
<br>
<blockquote type="cite">
<div bgcolor="#FFFFFF">
<div></div>
<div>Finally, I can make the changes to the timestamp. This as just a hypothetical example, anyway. <br>
<br>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>Okay cool, thanks Matt.</div>
<br>
<blockquote type="cite">
<div bgcolor="#FFFFFF">
<div><br>
</div>
<div><br>
On May 9, 2011, at 6:13 PM, "Jorge Williams" <<a href="mailto:jorge.williams@rackspace.com">jorge.williams@rackspace.com</a>> wrote:<br>
<br>
</div>
<div></div>
<blockquote type="cite">
<div><br>
<div>
<div>On May 9, 2011, at 5:20 PM, Matt Dietz wrote:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span class="Apple-style-span" style="font-size: 14px; font-family: Calibri, sans-serif; ">
<div>
<div>Message example:</div>
<div><br>
</div>
<div>    { 'publisher_id': 'compute.host1',</div>
<div>      'timestamp': '2011-05-09 22:00:14.621831',</div>
<div>      'priority': 'WARN',</div>
<div>      'event_type': 'compute.create_instance',</div>
<div>      'payload': {'instance_id': 12, ... }}</div>
</div>
<div><br>
</div>
<div>There was a lot of concern voiced over messages backing up in any of the queueing implementations, as well as the intended priority of one message over another. There are couple of immediately obvious solutions to this. We think the simplest solution is
 to implement N queues, where N is equal the number of priorities. Afterwards, consuming those queues is implementation specific and dependent on the solution that works best for the user.</div>
<div><br>
</div>
<div>The current plan for the Rackspace specific implementation is to use PubSubHubBub, with a dedicated worker consuming the notification queues and providing the glue necessary to work with a standard Hub implementation. I have a very immature worker implementation
 at <a href="https://github.com/Cerberus98/yagi"></a><a href="https://github.com/Cerberus98/yagi">https://github.com/Cerberus98/yagi</a> if you're interested in checking that out. </div>
</span></span></blockquote>
</div>
<br>
<div><br>
</div>
<div>Some thoughts:</div>
<div><br>
</div>
<div>In order to support PubSubHubBub you'll also need each message to also contain a globally unique ID.  It would also be nice if you had the concept of categories.  I realize you kinda get that with the event type "compute.create_instance" but there are
 always going to be messages that may belong to multiple categories. Also, ISO timestamps with a T :  "2011-05-09T22:00:14.621831" are way more interoperable -- I would also include a timezone designator Z for standard time 2011-05-09T22:00:14.621831Z -- otherwise
 some implementation assume the local timezone.</div>
<div><br>
</div>
<div>-jOrGe W.</div>
</div>
</blockquote>
</div>
</blockquote>
</div>
<br>
</div>
_______________________________________________<br>
Mailing list: <a href="https://launchpad.net/~openstack">https://launchpad.net/~openstack</a><br>
Post to     : <a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a><br>
Unsubscribe : <a href="https://launchpad.net/~openstack">https://launchpad.net/~openstack</a><br>
More help   : <a href="https://help.launchpad.net/ListHelp">https://help.launchpad.net/ListHelp</a><br>
</blockquote>
</div>
<br>
<div><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">
<div>--<br>
George Reese - Chief Technology Officer, enStratus<br>
e: <a href="mailto:george.reese@enstratus.com">george.reese@enstratus.com</a>    t: @GeorgeReese    p: +1.207.956.0217    f: +1.612.338.5041<br>
enStratus: Governance for Public, Private, and Hybrid Clouds - @enStratus - <a href="http://www.enstratus.com/">http://www.enstratus.com</a><br>
To schedule a meeting with me: <a href="http://tungle.me/GeorgeReese">http://tungle.me/GeorgeReese</a></div>
</span></div>
<br>
</div>
</div>
</div>
</span>
<pre>Confidentiality Notice: This e-mail message (including any attached or
embedded documents) is intended for the exclusive and confidential use of the
individual or entity to which this message is addressed, and unless otherwise
expressly indicated, is confidential and privileged information of Rackspace.
Any dissemination, distribution or copying of the enclosed material is prohibited.
If you receive this transmission in error, please notify us immediately by e-mail
at <a href="mailto:abuse@rackspace.com">abuse@rackspace.com</a>, and delete the original message.
Your cooperation is appreciated.
</pre>
</div>
</blockquote>
</div>
<br>
<div><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">
<div>--<br>
George Reese - Chief Technology Officer, enStratus<br>
e: <a href="mailto:george.reese@enstratus.com">george.reese@enstratus.com</a>    t: @GeorgeReese    p: +1.207.956.0217    f: +1.612.338.5041<br>
enStratus: Governance for Public, Private, and Hybrid Clouds - @enStratus - <a href="http://www.enstratus.com">http://www.enstratus.com</a><br>
To schedule a meeting with me: <a href="http://tungle.me/GeorgeReese">http://tungle.me/GeorgeReese</a></div>
</span></div>
<br>
</div>
</div>
</div>
</span>
<PRE>
Confidentiality Notice: This e-mail message (including any attached or
embedded documents) is intended for the exclusive and confidential use of the
individual or entity to which this message is addressed, and unless otherwise
expressly indicated, is confidential and privileged information of Rackspace.
Any dissemination, distribution or copying of the enclosed material is prohibited.
If you receive this transmission in error, please notify us immediately by e-mail
at abuse@rackspace.com, and delete the original message.
Your cooperation is appreciated.
</PRE></body>
</html>