 All right three after the hour. Why don't we go and I get started? We'll catch up with people later small group today Let's see AI No, Rachel said she had a chance to hers yet. So we'll skip that Community time. Are there any issues from the community at large people would like to bring up? All right moving forward We have not an SDK meeting. I don't think there's anything there for to mention At least I can't think of anything going on too exciting with the SDKs. I guess I should mention one thing We have a lot of activity going on in the go line SDK And I think I made occasionally see a couple of comments I'm one of the other SDKs. I can't remember which one it may be the Java one But a fair number of the SDKs seem relatively quiet And that kind of concerns me a little so If you're part of an organization or just you personally are working on one of the SDKs or have an interest in it um Try to make sure that there's stuff going on there because I'm pretty sure most of them are behind the specification I think the only one that's probably most up to date is the go line one Clemens, I don't know where the C sharp one is but I just see most activity going on the go line one and that worries me relative to the other ones because they all seem very Very quiet and that feeds me to think that they may be behind the spec itself Now I think I'm a little bit behind Also, because we didn't we're kind of in the inter version stage. So it's kind of Difficult to label the new stuff with something right, um, but So that's that's that's my reason for it like I have no discriminator effectively for the new stuff Like I could call it 0.2. This or something, but you know Yeah, and that's fine. I think um, the only reason it's kind of interesting to me is because at one point in time We did talk about possibly doing some sort of interop demo at kukani you And I and we recently decided not to do it mainly because of the low activity We see going on in the stks because then we assumed people wouldn't necessarily have time to to fix up the stks It's such a short period of time And so it's kind of a self-fulfilling prophecy at that point So I decided to put it out there for people to be aware of People are making decisions based upon the lack of activity so All right. Yep Moving forward then, uh, let's see the for the next demo We have had some phone calls to discuss where we are with that I won't go into the details here other than to say I think we are making really good progress We have a fairly well-defined scenario. It is around the airport one that we talked about in the past. We are going to steal the time after this phone call To continue some discussions if you guys can make it. I know it's a last minute decision The the hour after this call was originally meant to discuss kukani you planning But we don't really have a whole lot of topics there. So we're going to steal that time um I We we do have a Dashboard that's coming together route relatively nicely. I don't think I'm going to be able to show it during that meeting after this one But hopefully later today. I will have something Up on source dogs where you guys take a look at so you could see how it's progressing and then you guys can make suggestions But anyway, keep an eye out for those things going on Uh, I know Scott's not on the call But dug is there anything you wanted to mention relative to the uh scenario doc since you were a big driving force behind the current version of it Can you hear me? Yeah, now we can okay uh, well, I uh I took a lot of the uh the information and tables that I had been presenting in on the slide deck and I uh consolidated all of that into A word document that I was hopeful that um Scott could help uh convert that back to a Google doc for uh collaborative comments Yeah, I'm trying to get everything into one source to For to facilitate further discussion Yeah, I think scott is out today and tomorrow So I'll try to take that doc that you sent us and incorporate into the google doc Just give me give me a little word, uh like a day to make that happen Okay cool All right any questions on the demo stuff All right, moving forward kubakani you as I said we have a Schedule meeting right after this one, but I don't have any topics so it might be very very short um I don't think there's anything much to mention there. Nothing's really changed The the serverless practitioner summit the cfp closed last week. I think or something like that Um, they're still going through reviews of those and so if you did submit something I expect the notification. I believe within about about a week or so I think we did not have too many proposals actually submitted So I suspect most of them probably will get accepted. Just let you guys know We'll have to see how it plays out Uh, let's see kubakani is china. Nothing really going on there All right, a couple things I wanted to mention before we get to the meet of the meeting um Next Tuesday at 11 a.m. Eastern Mark and I were invited to join the cncf end user forum of feedback call Which is basically just an opportunity for the end user community to Talk to different working groups um within the cncf or different projects within cncf About their about their project and ask questions in both directions actually And so we're scheduled to go uh, as I said next Tuesday at 11 a.m. Eastern There is a link to the agenda doc if you don't have access to that Let me know and I'll see if I can get you access to it Basically, the reason I'm putting it here is so that you guys can see the list of questions or what we're going to actually talk about so You should be able to see on the screen right now I was basically just going to provide a quick overview of the serverless working group as well as the cloud events project And then lead into the questions that we had for them basically just finding out What they're doing with functions and serverless and stuff like that with their pain points are those kind of things If there are questions that you guys would like to have us add to that list If you don't have access to this doc just drop us a note and we'll add it to it And we'll let you guys know the outcome of the meeting and share these minutes if you're not allowed to actually see the doc Okay Any questions on that? All right moving forward then um, let's see v3. Okay, so one point in time Different people have mentioned the possibility and I myself included of possibly getting to 0.3 in time for kube kind of you I do believe it's still technically possible. We may have to speed things up a little But in terms of the roadmap that we have listed for 0.3 Um, I think we're making I actually paste it here into the doc I think we're making some really good progress on the optional attributes. I think we're Slowly gained those behind us security related ones. I believe um We've actually addressed the one security issue that I think gem opened up or PR the gem opened up Um, I'm not actually aware of any security related issues In our backlog. So if you think I'm missing one or if you'd like to raise one to get out of the list Please do it sooner rather than later so we can try to make sure we address those in time um The biggest one Is probably this one right here just because it's a lot of text But I do think we are With respect to security, um We basically said we're assuming trusted middleware, right? I believe there's either a PR for that or when it already I don't I can't remember where we are with that, but there's someone mentioned something along those lines. Yes, okay and I think it was recommended scripting the data field and Just have all everything else plain text and trust the middleware Yeah, and now I think that was gem's PR that went in recently that addressed that I believe So so Evan you may want to take a look at gem's PR There was merge recently and make sure it addresses your comment. I'm pretty sure it does But as I said, if there are other security related issues, please open up those sooner rather than later so we could try to address those Relative to practical use issues. I know that we have the the size limit one I don't believe anybody's really done much with the other ones out there So if those are of interest to you, please open up issues so we can start those discussions otherwise, we may just assume that There is no concerns known at this particular time and we can Cross those off the list is being done I think we've talked a little bit about uniqueness constraints on event ID That's part of an open discussion right now. Yes, and Fields being immutable as well. Is that part of that discussion? That wasn't part of that immediate discussion. No, um, I think I'm trying to remember I may be Klaus is working on a PR around the possibility of immutable fields. I'm not 100% sure But I don't think it's on the call to to answer that Um, I think at least some guidance there about event IDs and how those relate Bird like caching and deduplication would be useful Right, so I do have Item in the agenda today to talk about those four attributes ID source subject and type And how they relate how they relate to one another and the uniqueness checks around them I don't think we're gonna have time to do a deep dive discussion about it But I want to point people to the document that we're supposed to have the discussion around that So I think that will address most of those things you mentioned, Evan But some of the other things if you don't think they're covered someplace And there's no issue for it. Just open it up Well, if there is an issue and you think I've I've ignored it by mistake ping me and I'll make sure it gets out to the agenda All right Okay, anything else related to the v3 roadmap All right, moving forward May 7th, we are going to have our yearly status slash review with the cnc of toc Um, I have not started working on the presentation for that yet I will just get that started fairly soon and when I do I'll make that available for you guys to review and comment on Any and all review would be very much appreciated um Someone mentioned the possibility of us going to incubator around the same time I checked the the Graduation criteria to go to incubator and I think This little bit of text right here is probably the biggest hurdle for us Which is documenting that we have at least three independent end users Now I have an open issue to the toc to to define what end user means in our particular case, right? So for example, does that actually mean cloud provider or is it a user of a cloud provider? I'm going to try to get some clarity around that But the reason I'm mentioning it here is because one I'd like you guys to think about whether You would feel comfortable with us going forward if we did meet this criteria as a group and then two If we are want if we do want to go forward Be thinking about whether you can put forward Someone to fit this bit of criteria about three independent users once we get a clear definition So for example If you personally know of a customer using cloud events find out whether you whether you're allowed to mention them by name Um, if you are a cloud provider using cloud events in some way find out if you're allowed to mention that publicly Those kind of things is just do a little bit of investigation on your side So that when we get clarity on what independent user Actually means or independent end user actually means they know be able to ask for names to help justify that or prove it Okay So I said I didn't want to say to discuss it here. Just want to bring it up for people's attention to think about All right before we jump into the prs. Are there any other high level topics people would like to bring up that? I may have forgotten to mention All right. Let's jump into prs then All right. So this pr Oops, hold on. I think they're getting in my way All right. So this pr has been out there for a very long time James, I believe his name is James Roper He wanted to add an event key to our spec Mainly for transports like Kafka more than anything else We went back and forth quite a bit on here and where we ended up was rather than adding a partitioning type of property to the main spec itself or defining an extension and we decided to make it so that The definition that what he originally proposed actually hasn't changed It's still used for defining a casual relationship or for doing some sort of grouping of events The biggest thing that's changed recently Is this section right here And hope I don't let me unhighlight that so you guys can actually read it This the sentence that's started that's highlighted a little The biggest point here is that This property actually can change if the event travels through multiple hops Because I believe Clemens you were very concerned about the fact that It may be impossible or it may the business logic at each hop may actually change the bucket For categorization purposes. Yeah, and so this allows for that to actually happen So Uh, I believe this text has been out there for at least several days now I'll give you guys a chance to actually just look it over It's relatively short and it is just an extension so the bar is lower than a normal spec change But I'll give you guys a second just to look at this I have a question on this It said that it said it's grouping between multiple events. Are these events the same? I mean this multiple instances of the same event No, I don't No, I believe it's I believe the intent is separate events that may have some sort of relationship in terms of The bucket in which they'll be placed into at the destination. So for example, uh, I believe Helping to classify what queue they may go go into at the destination. Do I have that right Clemens is just one example? um Can you say that sentence again Kathy was asking about this phrase multiple events and whether it's the same event replayed or whether it's completely independent events And I'm saying it's independent events. Yes And the relationship that we're doing here is for as an example To figure out which queue to put an event into when it reaches its final destination Yeah, there's there's there's typically some level of correlation between those events because um partitioning is is is creating buckets that are then easy to process from Um, basically you have a torrent of events that comes in on one side And then you want to go and pre partitioning it so it's easy to go and process them So there's an implied implied relationship between those events like the same origin, etc So that you um Are able to then process them in context and that in that infrastructure where they landed they are in about the right order So so within a partition key value you would expect events To be ordered and between partition keys. There's no such guarantee Yes, that's typically how it's used and then the the the The further discussion just to summarize that the the the what dog the point that dog was made Made about how this might change If you have two of these infrastructures behind each other like let's say you have a kafka and then there's another kafka That's following that where you have kind of pre partitioning for of that torrent of events for An initial set of process stage of processing and then you Route those events further then all of those events would have the same partition key Which means they would all land in the same partition in the downstream kafka And that's not what you want Do you want to have some some reasonably even distributions? Which means you have to go and figure out a different partition key The different criterion to go and distribute them fairly across those downstream partitions Did that help answer your question Kathy? Yeah, I'm just thinking you know because um quite some time ago we discussed the correlation of events, right? and so I think this is Kind of like there's some overlap there um So this is specific to the partition. I'm just thinking you know for The correlation of you know for events for different use cases There will be other you know other keys or other Identifiers so I'm just wondering why we find this one and not the others So think of this the precision of partition keys As to be as good as north south east west They don't give you they give you the general direction of where you want to throw an event Like the broad but these partitions typically take events from very very many different contexts So that you can go and and and process them in parallel So if you the the use case for this is like kafka or event hubs Where you get a torrent of events that's coming on one end and then you have 100 different 100 vm's which in parallel pull the data out each for its partition and go and work through it But each partition will then have you know 1500 2000 I don't know how many different contexts that that processor still needs to deal with that's kind of so It's fairly course as a as a correlation mechanism What what matters is that each stream Is labeled in a way that it lands in that partition so that that in the end everything that is coming from that particular Whatever origin or context that's labeled with a partition key Shows up in that in the the time of arrival order in that stream and gets pulled out in time of arrival order in that stream from that partition But that's about the only separation if you get Yeah, I'm just wondering whether this is specific to the streaming cases case or it could be Because if we talk about correlation, right as I mentioned before and we discussed before there are many different scenarios that would need correlation of events and You know, we had we even had meetings discussing this. So I'm just wondering, you know, are we going to define You know each one for some category of use case For each category of use cases or how we're going to proceed with this You could if you want to you can use this obviously to be a A core like partition is a very general term So if you want your partition to be because you've been using these The building management use cases, right if you're if you're use case if your partition is a building That's fine. So if you if you in a particular scenario say All of the devices that are sitting in a building are using the building ID as the correlation key or sorry as the partition key And then that's how you run those into the system And then your back end infrastructure is Effectively creating distinct streams on a per building basis partitions Then you probably have the correlation that you want. So you can use this key to create that correlation and and I don't think the the The language that we have here speaks against that it's defining a casual relationship grouping between multiple events And so you can certainly for the use case that you described What half a year ago or a little longer you can certainly use that field So I'm just thinking you know if we want to if we would like to make this very generic Probably we should call it correlation key But it would it would like this to be just you know the partition to a stream Then we can call it partition key and then we might need to define other keys for other use cases And also the description I think it would be better to add you know clarification on this Maybe give some examples how we are going to use this Otherwise, I feel it's not very clear I know this thing in the extension, but still for people to Correctly use it It would be good, you know to add more clarification Or we we need to decide whether we would like to make this very generic Or or specific to a category of use cases Okay, I'll climb into it before you speak up. I think Tepini has his hand up. Yeah I mean Clemens can answer if he wants Oh on on the naming issue, I will choose to stay neutral because I'm too old to get to naming discussions Okay, so what I wanted to ask was um, I'm not gonna let you answer again Is this we were talking about semantic versus I don't know functional keys So the use case for this was actually splitting the stream are using this as the key in for example Kafka, right? So this is not the semantic key or subject because I think the subject field is a semantic version of this Yeah, which we were talking about last week Yeah and But these would also be So So how do I put this? Um, this is intended to change between middleware, right? much like the um pulling the value out of the payload as you suggested in some earlier call comments Yes, so the the reason why I was arguing against making this core part of the spec and initially also argued for this being element of the transport But I'm okay with this being an extension is that ultimately The consumption strategy for these for the events is dictating what the partitioning model needs to be So ultimately the partition key is something that the the you choose Based on the needs of the consumer. It's not necessarily something that the publisher When they initially create the event We'll know about but there's a further step And that's I I believe that further step is really when you hand off the event the produced event to the transport infrastructure That you then go and figure out how you construct from the given metadata. That's already there How you construct the partition key to sort of satisfy the needs of The the partitioning model that you chose for consumption And then once you and then for these multi-stage processing models When you are effectively pre partitioning a stream using Kafka into let's say 16 partitions And then you pull on one of those partitions, but you further want to go and subdivide that stream for processing Then you will probably go and pick up those events And then you will choose and they will all effectively have the same sets of keys At least they will all they will hash the same way So they will they would they would naturally land in the same partition If you happen to have a situation where you have like 16 partitions here And then downstream you have another 16 partitions And if they all landed in partition one they again are going to land in partition one Which means you now need to go and change your strategy In terms of how you create that partition key so that you get even distribution downstream So yeah, this will change And it's it's really driven by the consumption model rather than the publishing model So the publisher itself the the core generator of the event will not necessarily know But it's adapter effectively to the downstream infrastructure will know Yeah, yeah, exactly, but that's thanks for the clarification just because I think the subject being the semantic key and this being the functional partitioning key I think these are like core missing pieces from the spec at the moment So I am very happy about this but to put the cuttings point Yeah, I mean correlation is a really big By to take so I wouldn't make this generic exactly because of the Because this has a well-defined use as being a partition key and you want it to change You don't want it to be some random correlation String because you want to change it every like many times. So I think this is great as a partition key and not as a correlation key I don't see anybody's hand up. So let me just speak in your comments. I think the description you just gave about how You know the I can't I can't really say where'd you use but it sounded really nice where you're talking about how Something like source is really meant from for the producer's point of view in terms of you know This is telling you sort of like where it's coming from kind of stuff or subject Whereas this is really more for consumption by the receiver to figure out what they're supposed to do with it I can't really like where to use but would it be possible for you to rephrase that the text? We could put that in here because I think that distinction in terms of The the role this thing supposed to play would really help clarify Why this isn't necessarily meant to be a generic correlation ID? You know to have a property. Does that make any sense? Yeah, I called this consumption strategy. I think yeah, yeah Could be really good and it really resonated with me Sometimes it happens. Um, but I cannot always remember. Um Well, it is recorded That's true. So I have to go listen to myself I will um, yeah, I'll I'll go in and add that I just made a notes And yeah, I will I will go in and try to kind of add that in here as a amendment Okay, that'd be great and and I guess I think Whether that text actually goes into here or the primer because typically specifications are relatively concise So there's maybe better text for the primer that way, you know, we can ramble a little to make it perfectly clear And just think about where it goes. I'll do that for the then I'll do that for the primer I I still oh Except that one snippet that I that I wrote kind of the overview architecture overview piece, which we still haven't merged by the way um I I wanted to do some more work on the primer and so I can probably go and take that as a as a primer element Okay, um, is there a description about the partition key? Like for the extension What do you mean? Like you're you're on line nine. Can you show us the top of the document dog? Yeah, can you not see the document right now? No, I'm asking if you can go to line one. You're on line nine. I'm sorry. Yeah So that description at the at the start I would expect that to kind of explain that what it is to be used for Oh, that's a good point. I forgot. This is an extension. So I think it's the primer. You're right Thank you for mentioning that Um, okay, I will figure out the magic way of how to mend these Because that's not my proposal. I think yeah, you you can just put a comment in there and then James can pick it up if he likes it Yes, okay Christian has Christian has had figured out a way to go and add stuff into the commit Yeah, I think that's a github pose Yeah, and and I don't even know where that feature exists. Like I have You can suggest there's a suggestion edit button somewhere. What do you do? I review that's where Comments if you start a comment. So I could probably show this Um up at the top. There's a plus minus icon at the top of that little box Hold on. I'm pointing at my screen like anybody else can see it. Uh next to the font thing Next to the font thing Yes So that suggests a one line edit. It can only do one line edit. It can't do larger things But if you type a suggestion here it suggests instead of in this case the empty line Put this other case So but what's interesting is clements you ran into a situation where That will get sort of merged in and the person's commit or the the commit will be associated with this Second person, but they haven't signed it Yeah, exactly. They haven't signed it and then and then your own signature Gets picked up. So if I then accepted My I it's it gets signed by me but co-authored by but so it's it's a different signing In the beginning to start with but the person who made the suggestion there said signature isn't in it Yeah, so it might be better to stick but just get up comments right now until we can figure out how to do signing great Okay, but I guess what I'm in the net of this in my opinion is It's too early to to merge this one clements. You have an ai to make some text changes Kathy, it sounds like you wanted to do some thinking about some possible suggestions as well so People take this one offline make some suggestions and let's see if we can get this one resolved relatively quickly because as I said This one's been out there for a very long time And I feel kind of bad for the authors of this For it for it link rings along even though it's been a good discussion We need to get this behind us and I know that other people are waiting for it outside of this pr In particular the Kafka transport is really waiting for this one. So they're blocked on this one as well So we really need to get this one and block soon if we can Okay Any other questions or comments on this one before we move on to the next one Okay, there's some background noise. I'm not sure who's has to talk in the background. Oh, sorry, I forgot to Yep, not a problem. Thanks Evan. All right moving forward. All right Hang do I believe is the gentleman's name? All right, so given our previous agreement for proprietary spec references this pr Adds a reference to the rocket mq Transport binding so it just replaces our placeholder with the reference and I did check that url is good So this one's relatively easy and it's the first one we have Any comments or questions on this Any objection to adopting this pr or emerging it? Thank you guys very much All right, Clemens I don't believe you made any changes to this one. I so I think this one is ready to go But I did have a question for you Where is it? I'm not here Evan made a comment talking about a constraint section And I want to make sure that this stuff down here in your mind covers Evan's comment Yeah Okay, I just want to make sure because the the comment didn't go away. That's why I just want to make sure it wasn't lingering okay, so in that case Let me just close this and Do you want to give like a just a one minute quick overview to refresh people's memory about why we have this one or why it's being proposed Yes, it is It is proposed because of Alan Conway So so he's been he's been trying to implement an intermediary that dealt with cloud events and he found and that that included some transcoding of the content and he found That look at just a data and the content type Or data content type. He could not figure out how a non string how some non string content wasn't coded because he could not tell between whether A string that was a base 64 really contained You know binary or whether he should interpret that as string like he it wasn't clear for him to go and figure this out And there's there's precedent for this. So HTTP solves this Using and in mine also solves this using the content encoding field So this is now called data content encoding because it's only related to the data field and if present that field as specified Holds really holds the value base 64 at this point as specified you can choose other ones, but you must support base 64 and Then you can tell whether the data is effectively binary and you have to go and decode it Or whether it's it's not So it's effectively the indicator for how the data field what the encoding for the data field is And then the the data content type tells you What the media type is that you just that you found there? all right Any questions for clements? All right Not hearing any is there any objection to adopting this PR? Wait, wait, wait, I I'm not raising objection because I'm not sure I have an objection, but I'm also I'm still reading it Sorry, I should have read it before No, that's fine. Go ahead take your time Update my list of people on the call I guess I don't have any objections. I like Why not have like why can't it just be like any type? like why is it It seems a little limited. I don't know why We're we're effectively just picking up prior art from what? of rfc 2045 Okay, I will click through that read it can All right. I don't want to hold this up. I seem to read a little bit more Do you want to not approve it Can we Turn at the end of the meeting? Okay, we can we can okay. We can wait until What can I just like ignore conversation for like five minutes and go for it in the meantime jude your hands up Yeah, um, so it saves when the data must be encoded at the string You need to have data content type to indicate the gate the the encoding of that string, right? Yep So so what about the real content type then? What I decode that So in the in our structured encoding mode when we have everything in adjacent Then data is There's no binary option for for data like there's no way to represent Anything but a string just because that's that's how jason represents things So then you're effectively force it force to Put something into that string that carries the binary and that's usually base 64 But but it might also be it might also be something completely different Um, so you might use percent encoding or or anything else You know, that's up to you but the the base 64 is You know a way to go and put binary there But we have no way of labeling to tell to tell anybody the the string that you find in data You really need to go and decode that first with base 64 and then the output of that you can look at So, okay, so the output of that you look at then the content type Correct So which is the data content type with I think 0.3, right? Correct. Yes. Okay, perfect. That makes sense. Sorry. Yeah Yeah, that's a good question Okay, so they will we'll circle back around that get people a chance to read rfc 2045 Um, but I guess let me tell you are there any other high order questions on this one Okay, so let's just keep moving forward then. Let's talk about the subject. Unfortunately Rachel you might have had an action item on this one because I think last time we talked about subjects you May have had some questions that you were going to raise but you had had a chance to do your action items Do you still think you have questions? I mean so the The real action item for me is to read the like prior because my question about subject is how it's different from the things we talked about before specifically topic I think that was what we called it before Um, and I failed to read just to go back and read all of our prior on that one Like the conversation we had then but that was that was the like concern I raised because like we brought up topic Before we were like, no, we don't want to do that. So when subject came up I was like, well what has changed. Why do we want to do that now? Okay, how would you like to proceed on that then? Is does every So I read through this I read through this PR by itself. I haven't read through the Through the like links to the prior art And this by itself seems okay does like I I feel like does anyone else remember the conversation that we had about topics and like why we why we rejected that originally I do go for it I think I think the the we the major the major Disconnect we all had Was that topic is so it was about topic not so much about subject and I think we were arguing together for subject and topic kind of as a as a joint thing And I think the the hang-up on topic was that topic is a um Is a concrete concept in middleware Or people felt bolting this to middleware was inappropriate And that source was a more appropriate Way to express Where the event came from now if you go deep down in theory land and You know forget about the existence of software for a moment then topic as a word per se Kind of gives you that abstract grouping of of events into You know a shared topic, but I think the holdup was that topic is used in in Since it's used so pervasively in middleware It felt that it was inappropriate to kind of you know Create that strong association. Yeah, I think of pub sub. Is that what you're thinking of? Yeah, exactly. And I think and I think that's that's how we landed at source And it was it was then with I think the subject went under with the with the rejection of the concept of topic And then we ended up kind of in that in that discussion we had we we said, okay We should we should be able to live with that one of your eye and now with people have started to implement I think they feel like the source is a good choice and and by the way now my engineering team also thinks that That source is a good choice And and that but that the extra element here the subject is still is still missing Okay, the other question I have is how this so there's a conversation about uniqueness and how does this pr relate to uniqueness I'm not sure it does Because a a a source a source should emit distinct events So I think having the source and the idea Those two things together should be unique because the subject really just points into a Inner structure of the source But I don't think that is something that contributes to the uniqueness of the event per se I think the the the event the events identity is scoped to the emitter and that's the source I'm okay with that answer. Okay That seems fine with me Okay, cool Does anybody else have any questions on this pr? This is the subject pr just repress everybody and this is for the spec not an extension Okay, let me just a little check make sure we've addressed all the comments. I think you addressed scott's comment And I think that was just editorial um I have a question on this Yes, Kathy go ahead So is this subject the subject will only apply when the source has a Structure a substructure. So that's when the subject comes into play set the case Yes I think and I think that's true if if you have a very simple if you have a very simple source like you have it A single sensor and the sensor just emits one kind of packet then you don't need you can omit the subject So um, so so the subject identifies a field in the substructure. Is that So let's say let's say a you have a sensor and the sensor gives you readings about Let's say temperatures and Um co2 levels You could model it so that you can get distinct events For the the temperature And the co2 readings and you can go in and model that on the subject, which means you you subscribe to get You subscribe to get all the events that the sensor gives you but you can go in dispatch on the or filter on the subject and One of the subscribers may only be interested in co2 and the other subscriber may only be interested in in temperature readings Okay, so it is like a field to identify the subject identified a field in the substructure It might be it might be whatever you like. It might be a A sub module that it might be anything Anything that you can imagine in terms of substructure might be as little as a field Might be entire giant pieces of software that sits somewhere in an infrastructure that you just is subscribed to as a whole Okay, so it's for the for so it's for convenience of you know to um to decode the On the source information, right because the source. Okay. I'm trying to find out how we define the source The source itself. I if I remember it Let me take a look at this. It said it itself is a It's a has its own structure. Let me see that in text So Kathy, I don't know if this helps or not, but I tend to look at this as The subject is the entity on which the event occurred or But it's the entity which the event is about right. So when you create a new blob in a blob store It is the blob itself That way you can easily filter to know. Oh, I just want to get events about this one particular image That's in the in the data store So exactly. I don't I don't quite understand uh Sensor because I don't think any sensor would have a subject because they are so simplistic and the whole information would be in source But for example, if you think about the first example, it's really good in there actually like If you have a storage storage container And you get events from that storage container where the source is that storage container Then the subject wouldn't be a part of this The source it's an auxiliary field that actually identifies the file That is being modified in the source. So I think databases storage containers and such are better examples than sensors Because I don't think this actually applies to them Yeah, just since Kathy is always using centers and devices. I just thought I'd pick her up where she is But it is also okay. Yeah, but it is also optional So as Tafini was saying if your if your environment doesn't have this like a subject field Um, then you don't have to include it Does that help Kathy? Yeah, so basically the subject could be any chunk of the any chunk of the source, right? It doesn't need to be a part of the source if you look at the example The source is the storage container That holds files and the subject is the actual file name that is being modified So it might be something inside the source This is the point if you have a database you have a table the source is for example the database and the table concatenated The subject might be the id of the role that was modified for example Okay, any other questions or comments on this one Okay, I think I may have made some comments Um in here, but I think mine are strictly editorial and I'm okay with looking at those as a separate pr after this So let me ask the question. Do people feel comfortable? Basically taking a vote on this one. I'm going to take silence as consent. If you have any concerns, please raise it Okay, is there any objection then to approving this pr? Thank you. Clemens very much All right, uh, Rachel circling back around to your data content type or data content encoding Did you have a chance to look at that referenced? Yeah, this seems fine. Okay Thanks for any yep not problem Okay, so going back to this one Do it does anybody have any other questions or concerns on this pr? And I know sometimes it may not seem like it, but it is perfectly acceptable to raise your hand and say I would just like more time. I mean eventually we will say Times up, but if you need more time, don't don't hesitate to speak up So any objection to adopting this pr? Okay, cool. Thank you Clemens for that one as well All right, we have nine minutes yep nine minutes left. Unfortunately We don't think we have a whole lot of time to dive deep into some things What I'd rather do right now is drop people's attention to a couple of key discussions that are going on In particular this one about resolving the quote issue Definitely not ready for approval because there's a lot of discussion going on over there But we need to get this one resolved relatively quickly I definitely before 0.3 because this could be a pretty radical change if we change anything at all So please look at that issue and comment on that if you can And also as I mentioned earlier, there's a whole discussion that needs to happen around the relationship and the semantic meaning behind ID source subject and type Because when people started for example wanted to be able to add something to the spec that talks about how a receiver Can do deduplication and in order to do that they have to know which fields Uniquely identify the incoming event so they can know when something's been replayed And I believe right now the spec pushes us towards Source and id in combination being that unique identifier Some people have advocated that we need to add type to the list But if we do that obviously we need agreement from the group But then I think that also is going to impact the definition of what id meant because right now id is meant to be Pretty much that thing you can use to do deduplication at least from the exact same producer Which is why we wanted to add in source But if we're going to add in type then we need to explain what id actually means because you may actually have the same id For two completely different events coming into a receiver So what I did is I started a document here with the current version of the spec and I believe David Allen's pr that tries to link id and source as the unique identifier Into that to start to get a discussion going around what these attributes actually mean going forward Because we have to resolve these questions. So Please take a look at that document There are some questions in there to get a better feel for what people are thinking around these particular fields And so please comment on that pr so we can get a discussion going in there When we feel like we're sort of solidifying around a concrete reposal, we'll bring it back to the group But I want to have some offline discussions yet. Can we just flag that subject Is definitely not going to be used for uniqueness and we decided that when we accepted the subject pr Yes Yes Yes I don't think anybody suggested subject be uniqueness or be used for uniqueness. Yeah, it's just like brought up in that document here. So Yeah, drop it Okay, I'll double check that but I want to make sure I didn't put something in there that's talked about how we have to Talk about the relationship between them, even though it's not used for uniqueness because because That this document isn't just about the uniqueness checks. It's about what is the semantic meaning of all four attributes But I'll double check and make sure that nothing in the document suggests that anybody wants to use subject for uniqueness So thank you Yeah, I think this is a very good, you know on very good discussion I think we we really need to sort out this, you know, what is the relationship was a uniqueness So that people are we bring people on the same page Otherwise, I think you know when people just read the document Could be sometimes people might be confused Yeah, and in fact clements, I don't know if you saw it. I've made a comment on your I think it's your subject Uh pr where you had an example in there where you actually start talking about the relationship between subject and source I think And I thought The description there was really really useful for someone to understand how the various properties work together In conjunction with each other I thought it might be useful to take that example and pull it out from under the subject attribute and make it a more Higher level discussion point But I'll open up I'll open up a PR for that, but I thought that would be a discussion and I think that does tie into this discussion here So it may all be linked at some point. Thank you. Yep. All right um I don't think we we have five minutes left. So I don't think we have time to really dive into anything deep Are there any high level topics people would like to bring up for discussion or just awareness? Okay, in that case, let me quickly get Um, can I just ask related to the uniqueness in the current in the current wording of the spec? So I have this problem where um if you if you Create two events for the same occurrence with two different types Let's say they have different versions version one and version two Do they have the same idea or not in the current spec? I don't mean like after that discussion it might change, of course So my reading of the spec is that The id is meant to be Completely unique for every single event from a producer Okay, so it would be different for the different versions. Okay. That was my interpretation anyway Thank you. Okay All right, so, uh, Evan, I know I heard you um christian. Are you there? Yes. Hello. Hello. William. Are you there? William Okay, what about matt? Matt, are you there? Matt? Yeah. Hello. Klaus Yes. Yep. All right Dan Barker All right. Um, Matt, are you there? Error, William I think William had a drop. All right. Did I miss anybody on the attendance? I'm not sure what this is for I hate it when zoom. Okay. I think this is just a mistake Oh, maybe that's Doug again Okay. All right In that case, I believe we're done for today. Thank you guys very much And if you want to hang on or are you if you're interested either the demo or cloud event Or kukon eu discussion that's going to happen on this Zoom channel right after this call in three minutes Otherwise, you're free to go Bye guys Yeah, thanks for permission Yep No, I just wanted really to thank Clemens for the both The explanation of the Partitioning key and the subject because I think those were two huge things missing from the spec or an extension. So Thank you Thank you very much Good stuff. Yeah, what I liked about the the subject one in particular is As rachel mentioned, you know, we had this whole big discussion before and I think we were getting ourselves sort of Mixed up because you're trying to incorporate too many things all at once And so I like the fact that we sort of landed on a single string Meaning source and then slowly or maybe pulling it apart as we come up with concrete use cases and clear justification For why it has to be pulled out and I think it's a much It's a much more calm and and easily understood discussion now than it was before Yes, and now I just realized that I forgot to bring up a point. I was ready to bring up to any call But I said now So the topic versus the subject the old version is new. I think the topic one is That's the part where I was saying that we don't do routing information But we do do routing information because someone was suggesting to add to the spec this Senses that we don't do routing information In the context of your builds, but we actually do say like specifically that we do routing information Yeah Go sorry go ahead Yeah, yeah, and I think the difference there becomes from exactly the point that we don't do topic We don't do url. We don't do like the concrete place where you put the event You do contextual routing information and they are both routing information, but in a different sense Or different Scopes, I don't know. Yeah, that's actually one of the reasons why I try to pick up this this pr from thomas and see if I can work it And that's one of the reasons it's kind of on hold right now. It's because I feel like As you're saying we we actually do have to talk about routing information, but it's a different type of routing information It's not necessarily transport level routing if that's the right phrase for it but I was I was waiting until we Finish up the discussion around id source subject and type and those kind of things to see how that shakes out And then I was going to revisit that one because you're right. We do have to allow routing to some extent, but Since we're waiting the other interesting thing is Scott brought up the fact that he actually would like to include transport level routing information into the cloud event not because He wants to use it for routing per se But rather he wants to be able to pass that information along to the applications in a consistent format or in a consistent location And since cloud event will be the thing that he's passing on to his applications He was thinking well, why not include it in there right? Why include some other extra field just so I can pass along the htp headers as an example But isn't that the wrong way around? You would give the url when you are Putting the event somewhere not when you are taking the event from somewhere Or maybe I'm thinking about this wrong But when you need that information of where to put the event you're putting it somewhere or you're fetching it from somewhere So you must already have that information So there's you don't need to give it to an application that already has it I think that I'm saying this incorrectly. I think he's looking at the use case where You're a function author and your function signature. Let's say it takes just a cloud event. That's the only thing it takes as input, right? The function may want to know for example, what was the url the client used to talk to me? Oh Okay, then I'll I'll get you Yeah, and so he was thinking well if I'm already passing in this cloud event thing and it allows extensions Why not allow me to put the url in there? And he could play right he can find an extension to do that He wants to he just didn't want to violate the spec because if the spec says don't put transport level information in there He might feel like he's violating it, right? Sure, sure. I get that the deep I think the hard part is that there's no uniform way to represent that because it might be hdp It might be kofka. It might be mq2t. It might be fucking anything So yeah a different issue, but yeah, I think he just wanted to make sure he wasn't violating the spec more than anything else but anyway Different discussion. Why wouldn't that be an extension? I mean, sure. Yeah, you could yeah He did like I said He could technically do anything he wants. He just didn't want to violate the spirit of the spec and that yeah, yeah, sure Okay, all right. So to the subject at hand KubeCon EU um, I'm gonna bring up the doc I don't think anything's happened yet in there. In fact, I haven't even seen anybody open up issues or poor requests against the um Against the white paper yet. So there's really nothing going on there I haven't put up the templates for the presentations yet either so for people to make edits. I haven't seen any discussions so I don't think there's any for us to discuss other than a lot of us have action items to do something in some space here um So let me just open that up and say does anybody have anything that they would like to bring up for a discussion point Otherwise this part of the meeting will end and we could switch over to the demo I have a question To present and help in this or not. I just wonder Say that again, Kathy. You broke up a little for me. Oh, okay You need need to present or help and help with this with the presentation for the No, I I think for the intro and deep dive we already have people who have volunteered to present for the serverless summit I know you and I were talking offline and If our if the proposal that this group put forward does get accepted Then yeah, I think you and I can talk on that one. Is that okay? Oh, okay. So for the summit one, right? Yeah Yeah, because I know when you and I talked before we were talking about how Scott might have wanted to do a talk or wanted to join that talk for the serverless summit But I talked to him offline and because he's already talking at I can't remember which one of these He's already talking during the kubcon sessions already I talked to him and he's okay with with you talking in his place for the serverless one Okay, okay, so so let me know what you would like me to do Because I have another meeting Is that okay? Okay. Yep. That's great. I'll let you know when we need something. Okay. Okay. Thank you, Kathy Okay Any other questions or topics to bring up relative to kubcon to you? All right, then let's talk about demo. Um I don't oh dug you are so long. Okay, so let me see here I'm trying to figure out what if anything I should share I should tell you what let me stop sharing this and Doug let me try to find your latest Doc that you may have sent me You know, it's really weird Doug for some reason want to open up your mp4 file It keeps going to open up an open office as opposed to quick time and I can't laugh me cannot throw out why It's very weird It's like a dot mp4 It's a dot mp4. Yeah Do you want me? I just did an update to to that document I sent you and I Changed the word object to subject. Yeah. Yeah, if you want to share that'd be great because I can't send it right now Yeah, I'm not sure how much we have to talk about this call But I did want to give you what I have to ask questions and while Doug is bringing that up First of all, if you're not already in the cloud events demo slack channel Please ping me and I'll invite you. It is a private channel. So won't show up on your list, but you have to be invited Um My intern has agreed Today has time to look at this and he's already started. I'm hoping that maybe before the end of today I'll be able to share with you guys the third version of what he has. It looks pretty good so far Um, and then once we have that in place We should be able to start getting people to hook up their functions to it And then so Doug I can see your here we're here sharing now So I'll let you go ahead and talk to whatever you have here Like I said in the call earlier is I I tried to put in a single document all the key discussion points that we've had about this and and then Incorporate relevant tables from the those powerpoint decks. Um, so I started out with just um A a narrative that was really intended to be almost attendee facing as an introduction to the demo so We kind of can go through that and see if that makes sense from You know the message to the attendees um, and then I went and started to go more into the specifications that Or it could be uh uh, you know this document could be taken and then Work can be assessed and and you could actually start coding. So you talked about the Having somebody work on the dashboard. So you know the uh The whole display that you know the pros proposed display where it had the graphics um really could be looked at as a You know as a grid, you know where you're positioning Icons and Images and tax in just grid Positions so I kind of put together Just a simple Layout for for where the static images would be You know based upon You know what the uh the graphic that was in the deck. So anyway, it's a starting point and then what the uh, so from there included a link to the uh To the uh mp4 file in the video that shows, you know, how this animation actually Or how the micro um services would Um generate events that would be um list uh Reacted to by the dashboard app to Turn on and off those dynamic images and text um, so then this section here I um again, I just put Uh, this this is a table of uh, you call them micro services or processes that would be part of the dashboard app As it's listening into those Uh those cloud events that are coming into it Um that based upon I'm one of the backup on the on this thing the cloud this this uh table that shows um Uh The values of the attributes of the cloud events It includes a source an id A time a type a subject and data um This I think is a good example of Uh How to utilize those attributes Um how subject would be utilized and how Source would be utilized and how id would be unique to that source So I think this kind of shows a good example of how um all those attributes can come together to um To support this this um orchestrated set of processes so this uh the rules section here is Is looking at what is in each of those attributes that is coming in it's looking at You know, what's in the type attribute? What's in the um in the data elements or attribute which The data in in these cases have attribute value pairs One or more that are associated with the subject Which is an which is an object of type With the value of what's in the type right so In this case it's showing as attendees are connecting their devices that those uh connections are Manifest or represented uh each as a cloud event And based upon the particular um values of those attributes it's going to trigger um particular actions Okay And then each of those processes has an id associated with it Um Then you go into the retailer system And these are the processes that would be implemented within that retailer system looking at the same You know for the same structured information that has the semantic identifiers in it And then the actions that it's can those processes are are going to take implemented as microservices Is going to be uh generating A new event a new cloud event that represents uh Either a new object that was created or us or a change in status of an object that it process And each of those process id's would end up being Part of the uh the source attribute Of the cloud event and it produced Are you guys still there? Yes Okay All right, so again carrier system has a couple supplier system has one But if you implemented All of these services it should support All the uh the animation that was part of that that video um There are some reference tables In addition that are need to be considered in addition to just the values within those cloud events That so there's the offerings table so every Cloud node would be participating With a service You know in either The role of a supply a retailers carrier supplier But it's your Your roles are based or sorry the way you're going to take action is based upon your offering And your offering could be a product or a service in this And if you're a A retailer that is providing a you know coffee drink You're you're going to have um a a product that's like you know id p1 p2 p3 and it's gonna you know you can uh isolate the um The events that you would take action on based upon a location that you're serving that you're serving within that airport example environment So again, this is how we can scale it from You know if there's only uh four Cloud event participants, then you can scale it down. But if there's up to I think this one includes 12 Different um participants each with a different service offering. That's either going to be You know the the retailer product or it's going to be The inventory of the um of the cups the supplies that feed into that finish that finished product Or your offering is a service uh transport service, which Can be you know transporting as freight the the replenishment of the the cups But you could also extend it into Being the flight that the passengers are going to be boarding Right just just let you know as of right now Because we have limited real estate for a demo um the current the current plan that I have the intern working on is There are as you said, there are three basic roles that that the cloud event working group participants could could fill One is there a coffee shop The second is they are a supplier of coffee cups of like a warehouse And then the third role is the transport between the warehouse and the coffee shop And I figured between those three different roles If we had you know somewhere between three or four different people wanting to fill those various roles That should be able to allow us to satisfy, you know 12 to 15 different um You know different cloud event participants playing in this in this game kind of a thing Right, but if you had if if you had uh more than one Retailer and you put in a copy order as as you know a passenger puts in his order you you have to Have a criteria that would only allow one of those retailers to fulfill that order And that could be we talked about that that could either be based upon the location that they're serving Relative to where that person is located um, you know, uh or It could be based upon Uh the type of product where it could be a small medium or large drink Yep, exactly. It's right and and And so we had both location We both talked about both location and You know that size uh matrix but then If you start getting into the carrier and what carriers gonna Be selected to do the transport and what suppliers It's hard to carry You could certainly You could do that to a certain extent. Um by just focusing on size but I think a Location and that location that a carrier Was servicing and a retailer was servicing it if you just stuck to the from and to location it becomes more of a In my mind a simpler model, but you can go either route. You know, we talked about that Yeah, and that's definitely something that that we're taking into account I think location was going to be one of the sort of the filtering criteria that type of stuff And I think size of the cup was going to another filtering criteria. So Depending on how many participants we have in there. We'll play with those variables, but yes Yeah Yeah, so this table here really has to be, um Configurable to where it could change, you know, even up to the last minute And so you want to be able to not have this hard coded but have this as a transportable table that could be Implemented with each of those cloud nodes and referenceable by those microservices Yep, exactly. Yeah, I was definitely going to make the intern Make the ui Dynamic so as as people join in the thing it automatically adds icons or scales things out appropriately. So He has his work cut out for him Uh, see there was a certain comments. I thought So then uh, so yeah, so this becomes a key Uh reference table for those microservices that needs to be transportable and distributed for, you know, last minute updates Same thing with starting inventories Right, each of those retailers is going to have initial stock to Fulfill the drink orders and then you have suppliers that have their starting stocks and then when those stocks are all depleted Then you could start generating those out of stock notifications Um talks about each of those somewhere in those cloud service nodes You have to be able to generate those events that reflect a new connection coming in So that's just showing You know what what uh how to populate those attributes of the cloud events related to connections Um user interface for the attendees um That's going to be able able to generating generate originating objects that starts the orchestration. So There's there's the orders um, and how an order would uh Be represented as a cloud event. So that's in here Uh, I think that's it So I think it's got uh You know all the key elements to As a starting point and then as you go through it and find out something they need to be adjusted, uh For some more simplicity or or whatever, but it's it's I think a good foundation Yep. Okay. Jude your hands up Uh, yeah in the middle we were discussing, um That the statement doesn't need to be helpful as such and make it more like dynamic, right? So what if the participants like the retailer who wants to participate as a retailer or a supplier or a carrier? They can advertise themselves to the Which then dynamically updates the inventory and And then it's just reflected in the dashboard app You're cutting out a little because there's some static, but I think you're asking Yeah, I think I think Doug is a lot of static on your line or maybe you're moving something close to the microphone um Jude were you asking about whether The dashboard will be dynamic enough to allow people to join at the last minute Yeah, so no, so uh, so we said that We don't want that that mapping table to be static, right? We don't know hard core it anywhere So right which one are you talking about you talking about the uh, the offerings? Yes, the offering one. Yeah, this one. Okay Right, so this one At runtime itself we can have all the retailers all the advertisers. Sorry all the suppliers and all the carriers advertise themselves Yes, no, like, you know just broadcast like, you know a pink thing a m mic Microsoft I I'll provide a latte to this location and this is my class of um beverage right and then the the airport node can dynamically generate this table basically at runtime and then The dashboard app can just look this up for a real-time View of um, what kind of lattes are available to be having chocolate drinks or you know, and so on and so forth Yes, that was my assumption as well. Yes Okay, so everything everything would be dynamic and to the point where If we don't get enough people registering for the proper roles The demo won't work properly right because no one will for example refill The us, you know, we fill out a coffee shop with the appropriate cups or some or whatever, right? If no one if no one registers to be a supplier So you need a minimum of three right supplier a retailer and carrier, right exactly right Yep, and that's why there's there's part of me that thinks at some point we may need to When somebody actually registers to the system, we may need to have to tell them What they can actually do in terms of okay, they're registering as a supplier But we may need them to support small cups instead of large cups because if everybody registers were small But we have coffee shops that are doing small and large. That's a problem Right, so they need to be a little bit of a negotiation during the registration process to to make sure the demo is going to work properly But we can work out those details later Yeah, okay, okay All right. So, uh, Jude, did you want to show your swimlings to make sure everybody agrees with it and to make sure everybody's on the same page? Yes, um, can I share my screen? Yeah, Doug, can you stop sharing so that Jude could take over? Uh, do you guys see it? Yep, we see it. Too many things blocking my view of my own screen. Yeah Yeah, uh, so okay, so I'm gonna divide this into two cases. So So this is from a from the view of a passenger. So if the retailer has enough stock Uh, the passengers Just orders using the the dashboard app saying that dude. I want coffee x y z And the retailer does a coffee minus minus to update its own inventory and then deliver the coffee Right, that's that's I think it's a direct simple use case, right? Yep Okay, so then we come to case two where the retailer has no stock because coffee minus minus has returned like, you know, less than Uh, minimum stock say either 10 or zero for that matter So the retailer will then tell Tell the supplier that dude. I do not have coffee And the supplier will then in turn Tell the carrier dude, uh, here's your coffee x and deliver to the retailer y which was here And then an event from the carrier will go directly to the retailer which says here's As you order from the carrier Yeah, I think in my mind that's actually the the way I think it is Supposed to work based on our previous discussions. The only thing I would add to it and it doesn't actually change anything other than Um, it's not that the carrier Sends an event dude. This is you know, here's your coffee rather an event is sent when the carrier's truck arrives at the retailer That's a minor twist on it Oh, of course, that's that's just playing with two states, right? Once. Yeah When the carrier receives the the demand for coffee and then Actually delivers the coffee Right. Yep, and then you have case three, which I just thought of which we discussed us now is the the, you know broadcasting for initial Inventory this I'll just finish this off. Uh, maybe tonight and share a link with you guys in the evening Yeah, I think that sounds good. I think I think that's I think that's consistent with what we talked about in the past Yeah, so okay, so I'll try and get all the all the events and the data from the table That uh, dug has put in I don't think I have a link to the latest one though Yeah, I was going to upload that later today Yeah, so once I have that, I'll fill in all these cases with the actual contents of the event And then we can just run through them. I think on monday and and I think we should just start Implementing them or doing a POC Or something. Yeah, like I said, my my intern is actually kind of anxious because he feels like he's done enough on the UI to where he's ready to actually start receiving Starting to receive events. So later this evening. I was going to generate a dummy little Function that would generate all the events that he needs to Get the animation right Once we feel like that's working well enough so that it's not embarrassing and it shows a general flow Then we'll open it up and you guys can all start generating events yourselves from your systems And we can start integrating it and see how well things work or don't work Nice, okay Okay Yeah All right Anything else people want to discuss? I think I think we're making some good progress here Okay, any questions confusions things that we're forgetting We need to build like a a presentation on like a short deck on what the demo is going to show At some point probably yes, maybe just one or two slides or something. Yeah, um, okay I figured that I figured that's the easy part That is the is I'm just making sure that we're not like, you know Making it for granted or forgotten about it. Yeah. Yeah, we got it. We don't have to have something good All right, all right last last chance any questions comments All right, cool in that case we'll sync back up again on monday or Through the cloud event demo slack channel So please keep an eye out for that because as things become available. I'll probably post information into that slack channel All right Okay, cool. Thanks guys. We'll talk again on monday Bye