15:05:09 #startmeeting marconi-notifications-brainstorm 15:05:10 Meeting started Tue Dec 3 15:05:09 2013 UTC and is due to finish in 60 minutes. The chair is kgriffs. Information about MeetBot at http://wiki.debian.org/MeetBot. 15:05:11 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 15:05:14 The meeting name has been set to 'marconi_notifications_brainstorm' 15:05:26 #link https://etherpad.openstack.org/p/marconi-notifications-brainstorm 15:05:43 #topic goals 15:05:44 #link https://github.com/amitgandhinz/cloud_notifications#api 15:05:59 o/ 15:06:08 OK, first off I wanted to get a rough consensus around what use cases we are trying to enable 15:06:26 thoughts? 15:06:37 app development 15:06:41 alerting 15:07:00 reporting 15:07:15 and notification 15:07:16 definitely reporting 15:07:17 notifications, in the sense of, when X happens, users [Y] get a notifications in one or more of [Z] forms. 15:07:23 * amitgandhi moves to etherpad 15:07:24 (events) 15:07:36 alcabrera: out of my head 15:07:38 thanks 15:07:42 flaper87: :) 15:07:44 alarm 15:08:05 ok, let's get some concrete examples for those 15:08:19 alerting? 15:08:39 1. send me email when i use more than 100GB of CDN usage 15:08:51 megan_w: is that an alarm? 15:09:05 maybe i'm confusing alarm and alerting 15:09:06 sorry 15:09:07 a disk drive is reaching 90% capacity -> ops manager gets an sms and an email 15:09:08 Send me a report at the end of each day detailing the operation failures 15:09:39 But, I guess that's more from a deployers perspective. 15:09:49 lets all go to the etherpad 15:09:53 +1 15:10:01 * mpanetta watches 15:10:03 and then we can come back here 15:10:11 Okay, cool 15:10:23 I'm lurking, I hope that is ok. :) 15:10:33 mpanetta: lurk away! 15:10:35 flaper87: +1 15:10:42 just go and type in examples 15:12:45 an alarm is like the alarm using in Ceilometer 15:14:54 I'm not entirely clear on what exactly notifications means here. On the one hand there is a general pub-sub type mechanism to allow subscribers to be notified when messages of interest are published. On the other is a service built on top of something like that, which is essentially a precanned listener that handles the notification of a message by generating some 'external' notification (e.g. sends an SMS/Emai 15:15:19 is this more of the second? 15:15:25 or is the first in scope as well? 15:16:12 gordonsim: it's pretty much both, TBH! 15:16:26 The final goal is to allow people to do the second 15:16:44 gordonsim: want to join? https://etherpad.openstack.org/p/marconi-notifications-brainstorm 15:17:10 i suppose there is something non-immediate about a report, right? that's what makes it differnt from alerting on some of these use cases..? 15:17:20 flaper87: yes, I'm there 15:17:34 gordonsim: ah sorry, I don't see your nick 15:17:36 :D 15:17:44 megan_w: I'm with you on that idea. The alarm would be triggered on some condition, whereas the report probably has a periodic nature. 15:17:54 right 15:18:02 alarm behaves very much like alert 15:18:14 megan_w: noted 15:19:20 alcabrera: yep, but I prefer to use alarm to be consistent with the term using in Ceilometer 15:20:20 and generally, alarm will trigger a binding action 15:20:39 flwang: noted - the earlier we agree on common terminology, the better off we'll be in the long run. :) 15:21:02 alcabrera: +1 15:27:16 #info Need way to avoid 2 email workers from resending the same message 15:28:23 OK folks, looks like we are winding down on use cases and terminology 15:28:36 let's wrap that up so we can move on to the next topic 15:28:50 kgriffs: +1 :D 15:33:36 So templates would be for presentation only? Why not use them to define the types of notifications as well? Or does that not make sense? 15:35:06 mpanetta: hmm... I think template == output, so it could be the envelope for a given notification as presented to the target device/user. Trigger should be the input, in my mind. 15:35:33 Ah ok 15:36:13 mpanetta: yeah, each sink could have an associated template and trigger/pattern thingy 15:36:54 So the templates would be a way to define what you are subscribing to? 15:38:15 mpanetta: nah, that would be part of the pattern/trigger. The pattern/trigger might say, "when X arrives on channel [Y], notify [Z] using this particular Template" 15:38:34 Ok, tht makes sense. 15:38:54 #topic elephants 15:38:58 (see etherpad) 15:39:46 So colorful heh. Never done this etherpad thing before. 15:40:07 mpanetta: this is one of the prettiest ones I've seen. 13 users. :D 15:41:09 ok, great thoughts so far! 15:41:15 we have 20 minutes left 15:41:27 Moving on 15:41:54 cool 15:42:05 #topic features 15:42:09 Everything is an 'event' :P 15:42:15 Any other features people want to add/talk about? 15:42:54 (see etherpad under "Features: Stuff Users See") 15:43:41 sort of 15:43:55 i assume we leave the actual SMS, email, etc up to someone else? 15:44:05 megan_w: +1 15:44:51 I think the marconi project should provide 2-3 reference sinks. 15:45:25 email 15:45:28 webhook 15:45:30 one more? 15:45:40 sms 15:45:43 yeah 15:46:10 and i think we need to do APN 15:46:22 APN? 15:46:28 push notifications 15:46:34 AH ok 15:46:36 it gives us the mobile market 15:46:52 amazon SNS introduced it a few months back also 15:47:58 totally agreed. people expect push here 15:49:30 I like APN 15:49:40 I want to get people thinking mobile apps 15:49:45 let's do that one 15:50:03 people can insert their APN creds into the reference sink to try it out 15:51:33 For the record, since I wasn't aware of APN... 15:51:36 #info Apple Push Notification Service (APNS) 15:51:45 Thanks, was about to ask. =] 15:52:02 Google has something similar for Android 15:52:10 (I forget the name) 15:52:23 OK, we are short on time 15:52:30 APN = http://en.wikipedia.org/wiki/Access_Point_Name 15:52:36 One more topic I wanted to touch on, then we will wrap up this session 15:53:09 #info GCM = Google Cloud Message, Android's analogue to APNS 15:53:10 flaper87: The "s" in "APNs" is significant, it turns out. :p 15:53:27 :P 15:53:35 TMTLA 15:54:51 #topic how to publish messages to a sink 15:55:43 OK, so thoughts on how events will get published? 15:55:47 worker pool? 15:56:02 pipleline stage within marconi itself? 15:56:13 something else? 15:56:21 I'm +1 for worker pool, so that the workers themselves can be scaled as needed 15:56:25 * flaper87 has to step out for a bit! 15:56:31 +1 for WP 15:56:38 * flaper87 has a call 15:56:39 flaper87: D: 15:56:47 I prefer pipeline 15:56:48 flaper87: jk, see you soon. 15:56:49 flaper87: need your vote on the above real quick 15:56:55 if you guys want to discuss that, go ahead! I'll catch up. I don't want to break the flow 15:56:57 (or when you get back) 15:56:58 sure 15:57:25 mmh, WP, it'll allow us to run them concurrently and / or distributed 15:57:31 actually, concurrently :D 15:57:44 I like the idea of a transformation pipeline, since it has a functional flavor to it. However, if a pipeline was the connecting mechanism, I'd want that to delegate out to the workers. 15:57:44 we don't want to send yet another message to send a notification 15:58:01 flaper87: +1 15:58:09 pipeline allow us to add numbers of transformer 15:58:18 and the transformer can be customied by user 15:58:39 so, with the pipeline approach we could just run lots of wsgi workers. non-blocking I/O would be crucial. 15:59:10 also, as flwang pointed out, you can build up a simple workflow (think filter pipeline in photoshop) 15:59:32 downside is you lose some efficiency since you can't scale queues and notifications independently 15:59:38 oz_akan_: thoughts? 15:59:49 ^ we are working on this for Ceilometer.. 16:00:03 My primary concern with the pipeline approach is the matter of independent worker scaling - would we just launch as many marconi instances as needed to meet the demand for all types of sinks (sms, apns, hooks, etc.)? 16:00:19 i like that worker pools can be scaled horizontally and are more resilient to workers crashing 16:00:27 hi, I wasn't following the thread, let me have a look 16:00:41 we might also consider some kind of hybrid idea 16:00:59 for example, you could set up a distributed pipeline by stacking queues end-to-end 16:01:30 Oh how unixy of you 16:01:32 leave marconi-queues to do it's think. marconi-notifications sets up the queues, manages subscriptions and workers 16:01:42 mpanetta: why thank you! I try. :D 16:02:00 :) 16:02:20 marconi == | :) 16:02:59 app | marconi | worker | sms 16:03:21 yup - functional transforms all the way through 16:03:39 app | queue1 | worker_a | queue2 | worker_b | sms 16:03:44 something like that. 16:03:52 Sounds good to me 16:03:58 I think we just invented workflow-as-a-service 16:04:05 * kgriffs winks at Mirantis 16:04:05 lol 16:04:07 lol 16:04:17 so that's another good elephant 16:04:21 actually 16:04:28 yeah, what's the deal with Mirantis + workers? 16:04:31 Is that something we can use? 16:04:36 kgriffs: it's Mistral workflow-as-a-service 16:04:49 flwang: thanks for the clarification! 16:04:53 yep 16:05:07 #link https://wiki.openstack.org/wiki/Mistral 16:05:19 Is there a concrete use case for doing multiple transformations or whatever? 16:05:30 oooph cloud cron! 16:05:33 *oooh 16:05:39 Just thinking we may be getting ahead of ourselves 16:05:51 amitgandhi: ooh, that would be nice 16:06:04 anyway 16:06:06 its a mistral use case 16:06:09 * alcabrera gets back to topic 16:06:13 we could set up a "cron" job that hits a web hook for the event data, then pushes it to a topic 16:06:21 "how to publish messages to a sink" 16:06:38 ok folks, looks like we are out of time 16:06:51 hmm? kgriffs Ceilometer is already and will be doing pipeline work for its own stuff. Is this in an effort to expose a pipeline to clients? 16:06:56 I really appreciate everyones thoughts. We had a very productive brainstorming session! 16:07:04 Indeed 16:07:12 yeh this was fun 16:07:29 thomasem: I definitely don't want to reinvent workflow/distributed pipeline 16:07:30 next steps? 16:07:33 Mistral looks very interesting... 16:07:42 Haha, yeah. That'd be a bit wild. 16:07:44 :P 16:07:58 OK, so I will attempt to summarize the etherpad into a pretty wiki 16:08:03 And link that to the bp 16:08:09 #link https://blueprints.launchpad.net/marconi/+spec/notifications 16:08:14 cool 16:08:16 =] Cheers everyone! 16:08:44 awesome, good session. :D 16:09:11 kgriffs: So, about that merge... ;) 16:09:12 then maybe next monday we can discuss sub-blueprints and get volunteers to start laying down code 16:09:19 #endmeeting