 Hey everybody, how's it going? Happy New Year, Doug. And to you, Ginger. Hey, um, Javier, are you there? Yes, Happy New Year. Happy New Year. And Tommy, are you there? I'll leave your message in Zoom. What about, hey Tommy, what about Vlad? I'm here. Happy New Year. Happy New Year, and glad I'm here. Good morning. Happy New Year, everybody. Hey. Hey, Colin. Hey, Doug. Happy New Year. And you. So, Ginger, gotta ask, um, what if any relationship is there between you and Derek? Depends on the day. Uh-oh. He is my big brother. Ah, okay. Hello. Oh, hey, Colin. Jesus, Clemens. Happy New Year. Hey, and we've got Scott. Uh, Klaus, are you there? Yes, I'm here. Hello. Hello. Uh, Christoph. Hi. Hello. 925. Is that, um, John Mitchell? That's me. Good morning. Good morning. Bala, are you there? Yeah, I'm there. Hello. Well, now we've got lots of people showing up. Mr. Mark, are you there? Hey, Doug. Hello. And who was that? Oh, Ryan, are you there? I am, yes. Hello. Hello. Ah, Jeff, are you there? Jeff, I'm here. Hello. Manoj Dhani? I'm not sure how you pronounce that. I apologize if I'm butchering it. Yeah, that's correct. I'm from Tulio. I work with Ryan. Okay. Um, I'm sorry, which company are you with? Tulio. I work with Ryan. Oh, Tulio. Okay, got it. Okay. Yeah, he, um, this is Ryan Horn. He works with me. He'll be, you know, standing when I'm not available. Okay, sounds good. I'll make him an alternate then. Whoops. Thank you. Thank you. Mike, how much are you there? Right here. Good morning. Let's see. Did I miss anybody? Oh, Heinz? Yes. Happy New Year. Happy New Year to you. All right, one more minute then we'll get started. Hey, Doug, this is Mohammed. I think you might have missed me. Oh, sorry. Thank you, Mohammed. Thank you for speaking up. Well, there we go. Three after. Okay, let's go ahead and get started. Let's see, AIs. The only one worth mentioning is this one right here. Mark and Ken and I are having some offline discussions to figure out what we want to do going forward. In case you guys haven't noticed, not only is there a SIG app now in the CNC app, there's also a SIG runtime that's up for a vote. We're having even more muddied in terms of where we might fit, whether it's under one of those or a new SIG or what. So we're starting to have some discussions there in terms of what kind of proposal we want to bring back to the group here to move forward. But just wanted to let you guys know that this isn't dead. We are starting some discussions there. Obviously, if you have some feedback you'd like to provide, let us know and I'll pull you into those discussions. It's obviously not a very clear answer since this one's been lingering. So any brilliant ideas you guys might have would be wonderful. Community time. Anything from the community that people want to bring up, any topics that are not on the agenda that are worthy of discussion. All right, going forward. We do have a redesign of the websites. Luke, I can't remember his last name unfortunately, he is a CNCF guy though. He did a whole bunch of different, put it together and do design which I thought looked really, really cool. It's easier to manage. The old format was a little bit funky. So please take a look at it. If something looks wrong, please let us know we'll get it fixed. But I think it looks really good the new way. So I want to make sure you guys are aware of that. I have two things here. I believe by, I want to say January 20, we have to get back to them in terms of what sessions you want to host there. Unlike previous times, working groups only get one session. So I believe it's a 35 minute session. Full blown projects. I think incubator or graduate status can have up to two sessions, typically for an intro and deep dive so we have two different ones if we want. And anything here my initial thought was to let the workflow have most if not all the work of the server have a serverless working group session. And then use the cloud events deep dive and intro, I'm sorry deep dive intro to talk about be one status and discovery inspector working on my initial thought was that we don't have enough for two sessions, unless we make a whole bunch of and we could talk about deep dive on the discovery. But given it's only, you know, two months away, I wasn't sure how much time we are how much material we have to actually filled two different sessions. I won't, I'll open the floor now people have comments on this but we obviously don't have to make a decision today about this we have until the 20th to decide. But is there anybody who has any comments one way or the other about ideas around this. I think there's a session about SDKs and integration. Would that I assume that sounds like more like a deep dive session right. I think it would be maybe like a hands on very quick hands on kind of session. Interesting. Like, like cloud cloud events. You know how to use it in the real world. Hello world for cloud events in in one of the four languages that we could probably have around. I like that idea. But I'm assuming I use you are similar right Scott that it would be one of those two sessions it would not be a third session right. Yeah, yeah, well you only have one. So the second one could be like here's cloud events in practice like here's real code. You can go home with the thing that emits or consume the cloud event. Yep. Okay, now we say hands on did you actually have in mind people actually bring their laptops to do stuff. I yeah I think so. Okay. Okay. Any other ideas. That's an interesting one. Okay. I think about it. Let me know we can add more to the list. I do like that idea though, at least that would allow us to fill two different two sessions for sure so that would be good. Okay. So, as I said, think about it, and we'll talk about it again next week. So this practitioner summits, they are planning on having one. I believe is on. Oh, I'm sorry, go ahead. No, yeah, sorry, I had a hard time finding the unmute the one thing that we talked about in San Diego was a little bit of this is one thing with just the code the other one was sort of kind of the data formats and what what do the events look like and so forth because I know there's been a lot of confusion like what fields go where and so forth and we talked about I think something like office hours. Yeah, you know what's interesting at the last coup con I remember there being a whole bunch of booths where it's almost like an asking anything kind of thing for different projects. Yeah, I need to find out and I'll take the AI to do this I need to find out if cloud events now that we're at the incubator stage whether we get one of those, because that might handle the office hours thing you talk about. Yeah, yeah, yeah, I'm not sorry I just kind of chiming off of that one of them is writing the code with just processing events the other one is sort of kind of hardware design things that take advantage of the cloud events. Okay, let me take the AI to look into that and that will help us decide whether we want to do a booth kind of a ask me anything thing, or whether we want to include that as part of one of our sessions. Okay, I want to second my phone is ringing. There we go. Cool. Thank you for that. Any other comments on that great ideas before we move on. Okay, practitioner summit, it will be March 30. I believe the CFP for that will start, I think it's scheduled to start on Monday. Say that again. Where. Oh, it's a it's a day zero event for the for coupon. So it's co located just before the main coupon event actually starts in Amsterdam in Amsterdam. Yeah, sorry. Yeah. Okay. I think it's scheduled to start on Monday I believe so look out for that if you want to submit something. Question for you guys. I don't know how many people are going to be able to make it there but I was wondering whether we should have a face to face meeting there I was thinking, if nothing else it might be good to do some face to face discussions around the subscription and discovery spec, I find face to face meetings tend to move a lot quicker than offline discussions I wanted to see what you guys thought. It's time for me so yes. And I know. Anybody else have an opinion one or the other. Hi, this is Kathy. Hi, so for the face to face. Can we include a workflow discussion to. I think we can definitely include that yet we can we can see if we can find a couple hours and split up the time sure we probably do that if we need to yes. Okay, let me let me turn this around so I'm not hearing anybody jump up and down too much except for Clemens. Is there any objection to us formally saying we're going to have a face to face there so we'll be a formal meeting and stuff like that it's not just going to be an ad hoc get together. But per our governance rules we have to allow people at least a two week notice for face to face means or something like that. I want to make sure we get that out there in time. So is there any objection to turn this into a formal face to face. Okay, so I'll do whatever is necessary to try to find room for that and make sure they announce gets sent out. The room. Now I must. Oops. All right. Cool. Thank you guys. All right. Moving forward or I guess I should ask is there anybody are any other things related to coupon that I'm forgetting to mention. Okay. Next SDK. I think we do have a meeting scheduled for today. I never actually did send out an invite. But wait, I think we did agree the next one would be today. Do we have a need for a call today. Do it does anybody have any topics. I have a question. Yes, which is do we have an ETA for 1.0 of the various SDKs. It would be super convenient. Okay. Say what why don't we plan on having a phone call and discuss that, that topic sound good. That's the 1.0 release of the SDKs or 1.0 cloud event support. Good question. Particularly interesting cloud events. Okay, cool. Let's talk about that during this during the SDK call or on this call if we enter early. All right, cool. Thank you guys. All right. Kathy, is there anything you'd like to update the group on the workflow stuff. So we have been working on the workflow spec actively on last few months. And we are thinking about starting on the work group spec discussion meeting on the weekly meeting on soon. So I have created a do the poor for people to specify the time. If anyone of you are interested in that, you're very welcome to join on the meeting so that we can, you know, work together to move this into the right direction and also to make this back very generic. I can post that do the poor. Yeah, okay. Yeah, if you place a URL here that'd be great. Thank you, Kathy. Right. Yeah. So we're planning to start the meeting either made up this month or maybe starting next month depends on, you know, people's feedback on the, you know, on the time before. All right, cool. Any questions for Kathy about the workflow stuff. Or anybody else from the workflow team want to mention anything I don't know who else is on. Okay, moving forward then thank you Kathy. I'm going to go into too many of the issues here because I think I'm trying to work through people offline. There's just two things I wanted to mention. One is this one and Clemens I was hoping maybe you could take a look at it they have a question about the Azure bus. You don't have to answer to your obviously but you take a look at that issue since I think it's directed towards the Microsoft thing maybe you can find the right person to answer that one. I will do that. And all right, so we can either blame or thank I think it was Klaus for this one, but he noticed that our documents still say they're working drafts. So obviously I messed up. So, the question I have for you guys is, how do we want to fix this. Obviously, I could do a an amend commits and move the tags for one point overly so no one ever knows about the screw up. That might be the easiest in terms of less disruption for people but it is a little bit of a hidden kind of action. Simple may not like that. Another option is creating other commit for the 1.0 branch but don't do anything else. Another one is to start the process of creating a view 101. I'm not too thrilled 101 just for this was obviously syntax error but I wanted to see what what you guys thought and whether you guys have any opinions on how to address this problem. I think I think we do need to remove that text one way or another option to sounds good to me. Okay, anybody else. That's one. Okay. Yeah, I guess my biggest question is, is not moving the tag is going to be an issue for people, not necessarily us because we know what's going on, but for people outside of our group. I'm just concerned that someone seeing a 1.0 spec and saying it's a working draft might throw them into a tizzy. Or forces to get more questions than we need. I would I would just point them to the updated commit. Like them me and then me and the tag or them me and the people. Point the people to what you do for number two. Okay. All right. I'm hearing lots of people. Yeah. Lots of people saying number two. Anybody anybody object to that. All right. Cool. I shall make it so then. Cool. Thank you guys. So, all right. Are there any other issues that people want to bring up otherwise I was going to keep moving forward and work them offline, unless someone has one that they really want to bring forward. Okay, not hearing any moving forward. All right. I guess we'll move on. So it's like discovering subscription in spec work. So Before we start talking about the spec itself. I wanted to talk about sort of a high order governance kind of issue or process kind of issue. We get down to here. All right. So, I started writing up some texts, but I think we need to update the TLC on what's going on with our work. If nothing else to at least let them know that we're heading in this direction or we're starting this work. We realized that there's a basically a high order question for the group and that is This new spec that we're working on is it a cloud events project? Or is it a serverless working group project because that's going to change how we present this to the TOC So for example, if it's a cloud events project Then I don't think we need the TOC's approval because the cloud event Project the cloud event project itself can decide whatever it wants to do But we do need to make the TOC aware of it since we are a CO and CF project So that's more just a FYI kind of a thing. However, if we decide that no This really needs to be an independent project separate from cloud events Even though we are using cloud events that puts it back under the serverless working group domain And at that point we probably do need to go back to TOC and say not only this is something We want to work on but we'll get the permission to start it up as a new project Not as a stand box project yet, but just as a new piece of work That's sort of an exploratory kind of a thing and in that sense We kind of kind of feel like we need to get the permission right So I kind of need a sense from the group here Do you guys view this as a Is a cloud events project that's starting out under the cloud event repo that may at one point get forked off and Again, it's only repo but for right now it is a cloud event project or is it a serverless working group project? I'd like to hear some opinions with people If we if we want to use the subscription and discovery apis for anything but cloud events Then For anything other Then cloud events then it should be independent if we think of that as something that we do for cloud events specifically Then it should be cloud events I'm leaning towards having this being a cloud events thing Okay, thank you comments Hi, so uh, so at at aws We actually you know, we implemented a subscription and filtering Um capability specifically for aws events, you know, which is our our cloud events if you will And um, it turned out to be useful and was widely adopted by lots and lots of other services Including sns and cloud watch logs and some people in alexa and so on and so forth So the empirical evidence would suggest that if we were to you know specify such a thing The notion it probably it's used probably wouldn't be restricted to cloud events in practice Interesting so Tim to to clarify that Do you think that the where this project is currently would be able to be a sandbox project on its own or should it Should we and i'm gonna coin coin term here should we incubate it within cloud events for some period of time And then split it out. I'm just curious your opinion on that Oh, sure. That doesn't sound insane at all to me. The only point I wanted to make is that Such a thing has the potential to be, you know, quite broadly generally useful so, um Let me ask For people who view this as sort of a cloud events type project at least initially Does that mean that you think that? Cloud events is a required piece of it or it's just an optional thing that people can use For example, you can't filter on cloud events properties, but it's not a requirement that that that'd be a first class thing In your in your interaction with the event producer when you do your subscribe For me, for me, that's mostly an initial scoping question. It's like let's do the What's required to identify so first of all to discover What cloud events someone can raise and then can go and subscribe to Those particular cloud events, and that's a little bit more specific than trying to create an api that's you know broadly Useful for all kinds of event sources So I would rather I would rather have something that's specific to cloud events, but covers all transports Rather have something that is just htp and covers all the the entire world in terms of What's the what the format is Okay, cool. Thank you Anybody else want to comment on this? I'm hearing lots of people I agree with Clemens last comment, which is We should focus on What what are our needs within for cloud events first? But always have an eye for it could be more generic and could be its own project in the future Other otherwise, we'll just work It'll be too large of a scope and we probably would rattle too much Um Did I capture that properly here? Yep. Okay. Cool. Thanks for editing out rattle Sorry Anybody else want to comment? Yeah, I think it's also possible to write a spec Where you can use different parts, but not everything Um, for example in oaf you have these different authorization flows Like four different ones and you can use one you can use another Or you don't have to use all at the same time So I think the same principle could be applied here That people can pick which part they use and then it's Probably declared which part they use and everyone understands what part of the spec is important Okay, so it's I want to make sure I understand that properly though. You are you are leaning It sounds like you're leaning more towards What mark and clements are saying basically start out with ce being sort of our scoping function But it's not necessarily a hard requirement. They have to actually use it I mean What I'm trying to say is we can marketing the whole thing as cloud events What and say this part of the Project is called cloud event subscription. So you're specifically supporting only that part of project if you want to For example, or you only support the whatever we will call it the event format That would be the spec we currently have Okay All right, anybody else want to comment? So I have a question here. So my understanding of the subscription discovery Is should be I mean needs to be based on some format, right or some definition of the events So now that we already defined the cloud events, I think that's naturally part of the cloud event scope because if we want to discover or subscribe to another On definition of events we first need to have I mean that the definition or the format definition or the attribute definition of that type of Event, right? So I think naturally it falls under that's my understanding. I may be wrong because I Yeah, I haven't participated in several meetings before Okay. Thank you. I appreciate that Right. Anybody else? I'm here. Lots of people speak in favor of at least starting out as a CE project Is there anybody else that would like to voice a contrary opinion? I think this is uh ryan. Um, I think what's going through my head is If we start building out more More you know features for back of a lack of a better term That is coupled to cloud events then using those independently Is you know more difficult they have to buy into the whole ecosystem, right? So there's something to be said about You know having making it easier to adopt individual pieces even if they In some ways Can be coupled or or made better if they are using cloud events. There's something to be said about abstracting it out so that they are not You know that if I just want to use The filtering piece or the subscription piece or discovery piece um, I don't I can use that with you know a system that might already exist that isn't using cloud events versus versus having to go and You know buy into the whole ecosystem Is it fair to summarize what you just said as just as we move forward make sure that if If it is a cloud event project that the cloud event aspect is optional I Yeah, I think that's fair and and you know, I'm more thinking out loud than and providing an opinion here It's just something that's going through my head That's fine. That's really important All right. Thank you anybody else okay I believe then the majority Our release majority if not everybody seems to be leaning towards starting out a CE project and we may choose to fork it off or Pull it out later. At least for right now using cloud events as a scoping function might be nice or it sounds like people are in favor of that So is there any objection then with heading down that that path and I'll Work with Mark to write up the text or The ideas that we're going to then present to the tsc and give you guys a chance to clip it over before we actually Could talk to them. I think probably every week or so anyway, and they'll take a while to get on their agenda Any objections with that? All right, cool um, okay, so That's what we decided All right, moving forward um, let me just make sure one thing here agenda Oh Okay, so At some point we don't have to decide today, but at some point we need to decide what we're going to call the spec So we can actually refer to it by the same thing I'm not sure cloud description is the right one because I'm not sure it accurately Covers everything. Maybe it doesn't just cover discovery and maybe it does depending your point of view Don't have to decide today think about it If you have alternative ideas for a name please Speak up someplace in the doc or email or someplace so we can Start thinking about it and possibly take a vote if there's other ideas out there Um, but I don't want people to think that cloud subscriptions is the definitive name. Um, you can obviously change that Um, next. All right. So moving forward I believe the current scope basically encompasses encompasses two things Obviously discovery and then subscriptions um I Every now and then over the last couple weeks would start adding a little bit of content here And I think claus actually added some stuff down here in terms of end domains What I'd like to do is um, I don't think this phone calls that say obviously the best place to start having Uh wordsmithing discussions or writing text for the spec. I think we should do that offline However, I do want to make sure that we aren't going to just sit back and hope that someone else takes the pen If we do that no one's going to take the pen So what I'd like to do is ask if there's any volunteers who would like to Not necessarily own but at least take a first pass at defining Some of the metadata that they think Is necessary as part of the discovery piece, you know, for example, I tried to write down some things I thought might be interesting here, but is there somebody who would like to take a little more of a formal pen and say, okay Here's an initial proposal for the list of metadata That you would get back if you were to query an event producer for the list of events that they are going to generate Is there somebody who wants to take a first stab at that? The yon was already there uh, I think it'd be important to look at the, um How we've done this in k native as an example. I think we've captured You know, maybe not the form that this needs to look at but we certainly considered all of these pieces of data okay I was gonna say are you volunteering? Yeah, happy to happy to help write that Okay, so Mike, thank you. That was my correct. Yes. Okay, cool Anybody else want to volunteer to work with mike on initial pass? I'll help Okay, thank you comments Anybody else want to join the party? I can also help um Okay, thank you. Kathy. I have some opinions here. Yeah, I was wondering if you're going to speak up there scott Okay, so Unless somebody else wants to jump up and down, um, it's just let's let's keep it relatively small But can I assume that maybe mike since you were the first one to step forward? You'll take the action to reach out to the other three folks Sure Can I offer some help? Yeah Okay, um Hold on Can't type today Anything else then relative to discovery Now that we people think we need to talk about I mean Um, at least at this high level of sort of procedural next steps. We have volunteers to work on the text Anything else? Otherwise, I'm going to move on do the same thing for the next section. Okay subscriptions Anybody want to volunteer to Tap offline discussions with people about filling this section out. I'll do that too Mr. Clemens Anybody else? Yeah, I can help that too so this is from the Subscriber point of view right how to subscribe to the how to subscribe Yeah, and how to manage your subscription and stuff like that. Yeah, I can head to thank you class anybody else And I'm gonna obviously keep in mind that I'm sorry was someone speaking up there Okay, okay, um Obviously keep in mind that Just because your name is not on its list does not mean that you should not or think that you cannot Just put your random thoughts and text into these doc into this document itself. Um These are just the people that I want to be able to Lean on and poke and nag as appropriate as we keep moving forward to make sure we keep making forward progress Okay I can help as well. I've been thinking about this quite a bit. Um within julio So happy to give my thoughts and learnings. Okay, cool uh with that clemens can I count on you to be sure the the The ringleader to talk offline as necessary Yes, I will do that Thank you. Um, there's uh Can you guys do me a favor? I know for some of you guys that you're on slack and we can like your slack profile to get your email But I'm not sure everybody's on slack. So If you can can you guys? You know these four people here and the guys up here Can you make sure that your email address is in here so that mike and clemens know how to reach you guys offline? Sure, get a chance. Yeah, sure. Thank you So so how how average how should we do this? Should we Get on this back and start to putting our thoughts or should we start? I mean a meeting for a discussion and then How should we do this? So I think I'm I'm going to leave that up to clemens and mike to decide how you guys want to work offline But feel free kathy to put your comments directly into the doc itself even outside of this little group of four or five people Okay Thanks Okay With that let's turn this back around Do you is there anything about say discovery that you guys want to talk about on the call right now? Because we basically have a half an hour and I think we're technically at the end of the agenda But if we want to we can use this time to talk about high-level things like for example Does everybody think everybody's on the same page in terms of what the scope is for what discover is going to cover Do we want to have a discussion around that right now? Or any other topic? I have a question on the function signature. So, um, what is uh, um What do people think about that? Well, I think we we also had that items in the face-to-face meeting right for the next item to work on Yeah, we we basically took a vote and out of all the various topics and function signature was one of them Uh, this is where we landed this got the this won the vote basically working on subscription and discovery api Um, we did talk about potentially having some offline discussions about function signatures in parallel I don't think anything's happened with that yet Um, but in terms of as in terms of first class next work item It it did not win the vote, but that doesn't mean people can't have discussions offline Okay, thanks Okay, so anything you guys want to talk about I mean or do you want to adjourn the call? Of course switch switch over to sdk It's up to you guys I have to comment this morning, uh in the subscription section. Um, I'm just curious what everyone thinks Around filters how prescriptive should we be around how those are specified and and how they behave? So I guess the question is how much do we bake into the spec versus leave the semantics of filtering and how that's Specified to um the the system implementing the spec From my Actually, hold on a second. Tim your hand is still up. I assume that's old, right? Oops Okay, good Oopsie answer my question. Thank you. So I got a question for you, Ryan When can you be a little can you elaborate a little on when you talk about this thing being prescriptive? Um, because in my mind, I think if we're going to specify some sort of filtering thing that in my mind it means What is the filtering expressions or syntax or whatever we're going to call it of the request that's sent over to The event producer and doing your subscription. And so it seems to me that if we don't define The meaning behind that syntax you're not going to get interoperability But I'm wondering whether you were thinking of something different in in what you're asking here No, that that's pretty much what I was asking. Um, and there are some questions that come out of that such as You know if I specify a filter How Do I get any feedback on you know what that filter matches in terms of event types and versions when it comes to using cloud events So I'm just kind of thinking through you know, how how much of that we leave up to The the systems implementing this versus being in the spec itself So So prior art reference AQP has a filter mechanism And that's on the And it's on the source which means we we're getting things from and there's effectively two levels of selection Where first you're effectively selecting your Source for lack of a better term From the server you basically have a uri that's pointing to to something that's in the server and then there's a filter expression And the mqp spec itself stays away from being specific about that what that is but it says there is a filter And then there are extensions defined for a mqp That then specifies some filters some filter syntax That's one way how we've done that because there are Obviously various ways of how you could do this you could do and do renegades You could do a sequel you could do all kinds of very of ways of how to define a filter and That seems to work fairly well. So I would I'm not sure whether we we should bolt, you know, the one and only way into the into the specification. It's just my feeling Anybody else any comments? Does that answer your question ryan or is that yeah I think generally, you know, I think, you know as we dive into the specifics of this we'll Probably have more detailed discussions around how we expose it, but I think your original answer dug was You know answered answered my comment Which is, you know, it it it will be there will be some specification of how filters will work It won't just be, you know, a filter field and left up to the The systems implementing this to figure out what that actually means and I think that's helpful for me Okay all right any other topics people want to talk about at a high level I guess for either section subscriptions or discovery well, um I think I also wrote this in the questions on the comments before holiday season I wonder if this is really going to be a contract between a producer and subscriber or um I mean Maybe yes so um Because I mean we have the cloud events spec Which enables us to send events across multiple hops to do routing and everything So should really be subscription and discovery be then a thing directly between the consumer and the producer that seems to be a bit Um asymmetric I would say so basically because of that I introduced this idea of the eventing domains Further below in the document. So just as some background why I wrote all this Would you like to elaborate a little on what the eventing domain stuff is trying to what issue it's trying to address? Just keep your background You usually as I wrote in there you usually have some kind of middleware to route events Maybe even in case of cloud events across multiple of those hops and I suppose you will have producers and consumers and authorizations for them and and maybe what I would call event catalogs where you um Maintain a list of what is available. So in this scenario A consumer would query probably the eventing domain for event types or sources available in that domain Or the domain could also organize the routing to other domains And maybe cache the catalogs of other domains, that's just I mean Right now just an idea to have this this notion of the eventing domain So a consumer would would do uh subscriptions via the domain a producer would Offer what what it has to provide to produce to the domain Just since I don't see anybody raise their hand um When you think about this To the event consumer. Do they know whether they're talking to a quote Domain as opposed to just a single producer is do they do they know do they know the difference in essence? I don't know yet So um as there are quite a few people from canative in here anyways So I I think it would match quite well to the broker in canative. So just to give an idea um Maybe in an extreme case when you just have this direct connection between producer and consumer the They would both um so to speak contain their own eventing domain because they would just be a single participant in a domain So it's really about managing eventing But tim your hands up Yeah, so I mean it's always I've always thought that one of the big benefits of the whole pub sub architecture is that You get strong decoupling. So the producer does not need to know Who's listening and and so, you know the relationship is very very strongly decoupled And whereas there are certainly, you know direct sometimes occasional direct producers consumer linkages that would be Not the mainstream case. So I think empirically what we see in industry Is typically buses that have lots of people dropping events onto them and lots of other people subscribing to them And that's good Yeah, it's kind of why I was asking the question because I guess in my mind. I always kind of assume that we're going to define this subscription type model and and even a discovery type model where The client who's talking to these things Doesn't know or care whether they're talking to a in essence single event producer Or an entire set of event producers that's behind as you'd call it here an event domain, right? And this kind of actually gets to a topic I was going to bring up if no one had anything which was As I was writing down this list here I started wondering What kind of grouping or how are things going to be returned they put it that way, right? Are you getting back a list of event sources? And then there's the list of events for each event source or do you get back a list of events? And it includes the list of event sources that you might be associated with it or You know and basically, you know, I was trying to figure out in my mind. What is the right grouping or or High order bits that people may get back when they actually do these queries And I think that might be directly related to your events To your eventing domain stuff class you're talking about there because If the notion of of different event producers which I think match to your event source is a first class thing Then while we may not necessarily expose the the fact that you're talking to a A domain as opposed to a singleton when you actually look at the data, it'll be very clear to you because You know all the source values are the exact same versus they change constantly, right? I'm not I don't kind of rambling but I think it is related to what I was trying to work through in my head in terms of How the data is structured when it comes back Mike you have your hand up Yeah, so, you know, this is something we thought about a lot about in in terms of thinking about, you know Representing all of the various event sources that we would have just at google as a provider And to think about coming at it as these various event types that are available for us first They're just going to be like a deluge of information for somebody who wants to consume something And that um, you know, our customers typically think about it as the the event source first So at the end it's like a funnel right the the least specific to most specific You know, I know I want something from say Uh, you know google compute engine Okay, what event types does that have and thinking about the funnel that way? The thing that doesn't address is if you have event types that you may be able to get from multiple producers But I think that's more of a special case and you could provide a pivot for that functionality Yeah, I think that's where my head kind of landed too. It's just why if I started writing out something like this down here, right? Oops, I'll do that okay, uh anybody else have any comments or thoughts on Clauses Stuff down here You guys are awfully quiet today I I did have one comment. Um just to So, um, we've seen it come from the other way as well at twilio where, um A customer might want to receive events for a particular source. So for example a phone call That they make through twilio. Um, they you know are You know running their own state machines on their side And they want to subscribe to events from that one particular call or an iot device or a sim card, etc So, um, I do think that you know thinking about it from both ways are both equally valid for us Interesting. Yep. Thank you anybody else okay, um Last chance any topics people want to bring up Otherwise, I'm going to assume that the ring ring leaders clemens and mike who volunteered Will hit you guys offline to start writing some text Okay Yeah, I believe hold on a minute Okay In that case we could technically end the call now unless anybody has any other topics they want to bring up under aob any other any other business Otherwise we'll switch over to sdk call Any other topics people want to bring up? Okay, in that case before you guys start abandoning us. Hold on. Let me do the roll call again. Um Falco, are you there? Falco, what about luke? No luke banished. What about thomas? Thomas I I see falco time to come offline. So I'll give him credit for that. Lionel. You're there, right? I'm here. Okay, and eric Hello, I'm here. All right. Anybody else I miss for the roll call Hey, Doug. This is christian. Happy new year. Happy new year Oh, gosh, you know what? I meant to say the beginning of the call. Happy new year everybody I completely forget to say those kind of things All right. Anybody else that I miss? Okay, in that case if you are not interested in the sdk side of things you are free to drop and we'll talk next week And please don't forget to add comments to the uh to the news spec as as you can And thank you guys very much. We'll talk again next week and we'll start the sdk call in about a minute or so Thank you. Goodbye. Bye It's snowing Is it Is it a good snow or just a light snow? it's uh Looks like it's sleeting a little bit in seattle right now Which means it's already devastating Seattle and snow is not compatible at all No, no the city's like oh god apocalypse. It's done. We're just everyone move I saw a bunch 2020 it's already it's already started I have to assume though a hilly city with snow is just bad news I have to assume though you guys There's not that people would learn Well, you guys have to handle snow better than they do in here in north carolina. I mean, they're Really bad here, but you because you guys must get more snow than we do at least occasionally, right? So the worst the worst thing about seattle is that because of the salmon And in generally protecting the environments The city of seattle and all the the the towns around future sounds do not put salt on the street And That is fairly devastating because it's uh, uh, you know, there's a ton. There's a ton of hills Which means you have city. They there's annually when there's a little bit of snow on the street There are annually you see pictures youtube videos and everything of city buses just sliding down the hills It's amazing I'm kind of surprised the city buses I'm surprised the city buses don't put on some sort of chains or at least those wired things that aren't quite as destructive as chains Yeah, no, they put on chains or it really needs to but otherwise they just slide around All right, I think we got rid of everybody else who doesn't want to be here. Let's go and get started Yeah, I think we've set the stage for the sdk's with those comments. So let's go Thank you. Veleg Doug I I need to drop at 10. So Don't don't call on me after that time. We'll do. Okay All right. So tim asked the question when are the various sdk's going to support 1.0? Anybody want to jump in there? D sharp does No, let me let me let me refine that a little bit. Um, actually I that was the wrong question I I want to use the sdk's in a production Application and being a wimp. I would like to not do that until they are stable. Um, so that's the real question. I'm asking Ah, okay If you find if you find bugs, you're welcome to fix them Fair enough, uh, so Question, I guess I'm really asking is the design of the apis Uh, considered stable I think I think we need to list out the sdk's and then have each of the teams that are committing to them make that make a comment because I I I would say that the go one is is Fairly stable. Uh, the rest of them. I just don't know Yeah, so that guy was going to ask Tim which which sdk's do you care about or do you care about all of them? Um Go most Yeah, so Go is actually in transition to v2 So the apis might change a bit Do you have an eti on when that might be stable The the api in general for v2 is uh, fairly stable, but it it needs more integration uh Where we continue to push on this this concept of you can you can pick What how much of the opinion the sdk provides you so you can you can use it without the client You can use it without the transports. You can use it just as an object that Marshals itself in and out of the formats supported so I think to answer that question properly would be um I'd have to list out all those layers and say which ones are stable and which ones aren't Wait, would that be good to do as hoping an issue saying Here's here's the stability and then be able to update that Yeah, I Yeah, I can do that. Yeah, we But but you're going good because you're saying v2 How is v1 is via v1 Considered a stable api It's it's fairly stable. I think we've found all the places that need to be adjusted to support things that are being used uh v1 is is everything that's In the cloud events pkg cloud events directory v2 is everything in the pkg bindings directory And then there's some migration that's happening Is that is that answer the question? I mean it might be kind of pertinent to start up a Go sdk kind of like bi-weekly call for a quick check-in for people that Are using it and have questions and want one answers or need features or or have bugs or issues or whatever There's some folks doing some performance improvements in the gullang sdk right now and The memory overhead got a lot reduced Or it will be as soon as this pr merges I guess another question to tim is Have you or or anyone on your team taken a look at the current go sdk? And have Questions comments Or what level of stability they feel it is Yeah, I did look at it. I actually used it Uh to to build something and uh, it dropped some comments in but they were sort of generalities about architecture, not specific api arguments I have and I think I'm pretty sure what I was using was one point was the The one release one Um, so I haven't looked at that release two at all. I'd love to read to understand how much of the sdk you're going to use Like is the client piece important to you or is it just the the transport bindings? Uh, oh, I I want to convert some of our internal stuff into cloud events. So I want to generate cloud events And then like are you gonna are you going to take the client and use that or are you going to start By just taking the event piece Just the event piece Okay, that that helps me focus on which parts I should Uh Kind of like stabilize in the v2 stuff Yeah, basically I want to generate cloud events and um I'd like to have a stable library to do that with that's all. Yeah, okay okay Um, Clemens did you want to talk about the the status and stability of c sharp? Um, well, I consider that the sdk to be uh stable As this and supports and it supports scott oven 1.0 And the The one thing we're going to we're I'm going to do there is add Now around things out by adding all the transport options. I'm going to try to have them all There yet. I think there's nats. I think it's missing um, but otherwise I I think this is mostly done Okay Any questions for uh, Clemens? Do we have someone on from the java one? I apologize. I can't remember who owned that one And there's javascript 2 Oh Okay, well do we have anybody from any of these or anybody that can speak to any of those four? I think 1.0 is supported in java And I think 1.0 May be supported in javascript because there's been a lot of activity there Okay Yeah, Vlad thinks that only python ruby do not according to the Releases on the repose both java and javascript support 1.0. I mean they have adding what that 1.0 support In release notes. I don't know how comprehensive it is. Yeah, it's in the notes Okay Are those the only sck's we had I can't remember hold on let me check Okay, we got go java c sharp javascript ruby and python. So I guess we got all of them. Okay Who's that from All right Any other questions comments anything else you guys want to talk about relative to tim's question I mean tim did that kind of help answer your question? Yes, thank you And I'll pay close attention to the go work because I'd like to move ahead with this stuff as soon as possible But just generally speaking I think it would be great now that you know We've shipped 1.0 and banged the drum about it if the sdk is we're stable and marked stable really soon Yeah, you know, I think that's a totally valid Ask Tim are you are you in seattle by chance? Vancouver Vancouver that's close. Do I come down sometimes? So let me ask this is it is it a question of document? It sounds to me like it might be a question of Documentation in terms of the website explicitly saying hey, this thing stay well as well as some sort of formal Minimal 1.0 type release kind of a thing right because that we don't think anything's real until it's well at least 1.0 I think what Tim is asking for is a sem for Compliance so that you know, like you can actually trust the version. It's not going to do api breaking changes Is that fair Tim? Yeah, I guess I'm there would be just fine. I mean, it's great that 1.0 has shipped But there's not that much you can practically do with a specification, right? I actually want to use this thing Need code Okay Let me see if I can poke on the obviously C sharp and go are covered by the guys on the call here But let me take the action item to poke the other folks offline and see if we can get them to Be a little more formal with their releases and and documentation and stuff like that And see if we can get something More concrete out of them Okay There's also some work happening to potentially make a type script library Who's working on that? I think some folks from google I'm sure we I'm sure we can get another repo create form if they're interested That'd be cool. Yeah Yeah, there's been some discussions inside the javascript team Or javascript repo that because types of javascript are kind of like Same-ish or it compiles down to javascript So it conflicts a little bit or it's duplicated work Right by relay um Okay, are there other stk topics in general that people want to talk about? I I have a I have a topic A while ago, you know, so The the reason why the golang stk for cloud events has a client is because that's That's the operating model that of k native uses And so it was convenient to kind of like hoist up that code and implement that In the official stk and then other people can continue to use that that client and it It makes a couple opinions, but basically it's it's very flexible for the implementer to implement exactly what it's what it means to do certain things but The cloud events the the specification doesn't really talk about this client piece. And so I was I was wondering if there Is it should should I look at polling all of the client pieces out of the stk? into some other Some other repo that imports the golang stk for cloud events and that just becomes the binding piece Or is it fine to have it in the repo and you just ignore it if you don't want it I can only speak for my own, you know usage, but that would be great because Uh, you know, I we're interested in, you know, generating cloud events Uh and parsing cloud events, but you know using various different kinds of underlying transport and so on Um, so a lot of the stuff in the client library is probably not terribly interesting So it would be nice to have just the data stuff. Yeah So what what I'm doing with um See sharp just you know, so show what things I'm trying to do things in parallel um All the if I can I only have to transport bindings which refer really back to the core dot-ed framework And I'm staying away from doing anything that's product specific. It's specific and I'm using for instance for ampqp and for ampqtt generic, um protocol libraries which are Which work with with any product and for event hubs and service bus and event grid we're um, I'm going to put the the cloud event support into the SDKs Since those are being rebuilt right now. We're actually building some extra library with extensions but we keep all of that stuff out of the I'm all the cloud event at the ck So it's basically just generic completely generic libraries with no tie-in to anything. That's a specific product project or anything Yeah, yeah, there's nothing specific to k-native inside the the golang library and the exercise has actually been really good for me to Think about other ways to use it that aren't What k-native does? But but again, like it's it's more code than uh, like a tim bray integration story might use Folks I gotta check out. So thanks and hey if you want to talk to me about this stuff, uh, you know, I'm easy to find Okay, yeah, I'll reach out. Thank you. Just to have a slightly Contrary in view um I would actually prefer if they were all in the same repo, but have a clean separation Just because I think they go they go hand in hand so much that Even if you are like in tim's world where you're only going to use one one side of it Um, I think there will be enough people that will want to use the the transport side of it that Having them sort of look at the documentation or deal with two separate repos Might be more annoying for people. So as long as there's a clean separation in one repo I don't I don't see a problem with that, but I don't it's not a huge thing either way Okay, maybe it's just a documentation story Because yeah, I maybe think correct. I kind of look at it as you know, the simplistic thing is Hey, you know, I can use these transport things and handles the cloud adventure and the curve is all this wonderful stuff for me But if I need to go around those and do with things more advanced I wouldn't have to I don't want to have to jump over to a separate repo I want to look at it as more like an advanced feature and jump to the ce library itself Right. I mean the the consequence is that the go-leng SDK is basically a function framework Um, and that you can shim in and out transports Yeah, which is cool, but like probably scope creep. Sorry Yeah Okay, any other topics you want to bring up Okay, now scott you had mentioned possibly setting up, you know bi-weekly phone calls um Since we never really have too many topics for this call you are welcome to to use this call if you want um Just to just point that out there for you. Yeah Maybe I could put it on like office hours on the the website itself in the repo. Yeah, okay All right, anything else before we uh, yes So, uh, ducky, you might remember we had this discussion and, uh, issue around nested events Yeah, and I was wondering so, um I had this action item to to finally add some sample how do you would do nesting with events and When I was working on this I I ran to this well problem that um, if I use the example of having Of nesting a structured mode event into a binary mode event that right now it wouldn't really work with With stks basically because we recommend to to distinguish between binary and structured mode by looking at the content type So, um, if you have put one event into another event and therefore set the content type to cloud events jason um stks think that The outer event is already a structured mode event So basically missed the binary mode event interesting Yeah, because we could talk about this and the spec right now as as claus said It doesn't normally say it but it definitely says it That you should look at the content type to decide whether it's a cloud event or not I was wondering whether we should modify the text to say look for the presence of the c e spec version header To know whether it's binary or not. No, no, no this this is a json Structured event that has mirrored attributes And the spec says that when when we have a mirrored case like this that the source of truth is actually the body And then they should match I think i'm thrown because you said they're mirrored and they're not Well, they're supposed to be mirrored right like There's allowances for Uh, you can duplicate data and hoist it up into the headers if like downstream. It's easier to process it like that But I think the event That the dog is posted here 20 days ago is actually invalid because it it goes against the the spec and According to the spec the the type is cool event not my event And this is actually an error Yes interesting Because because this is uh, I think we have language that says it allows you to go and project the From a structured event you're allowed to put the the attributes into the headers So though they must be the same this is not the nesting case Oh, okay If you send a structured event It is okay if you go and use the same mechanism as as for the as for binary by by mapping your attributes into The headers so that the infrastructure can see them because we have to assume that the infrastructure has no visibility into the payload The encrypted or not So that's why we allowed that so this is not nested now The nested the the nested case um Is nevertheless interesting switch to application json and uh now it Or what what's the what's the header for binary the nesting case where where would be if you so so it could so if you stare at this one that's actually the the um This could serve as an example if you If you send the the the event my event and that event my event carries as payload This inner event Then what is the right content type? I think it's this the the binary header Well, that's what the binary pattern is Did I get confused and this is this the content type here application in cloud events plus json means binary No, it's not because content type should talk about the inner content type Oh, I see I see this is where the confusion is because the inner content type is application cloud events json correct Oh, yeah So that's what's the nested case, but you know The nested case so so cause do you actually have the nested case? No, it's um in the beginning and uh I thought about this was really in the early days of cloud events and then they opened up that issue and um So that got back to me on that and and I promised to um to add an example for this And are these German engineers? No, no As I said, we are not using this. It's just Chicken Well, so let's just back up a second here because Scott you You said something interesting at the beginning of the discussion You said that you thought this was an invalid cloud event I Is it or is it not because I'm kind of saying it's not invalid It's just not necessarily the right descriptive text for it. Um Because I don't think you have to necessarily have the the cool event type match the C type my event on the outside. I don't I don't think you have to well Because if you pull out the inner events, right that Okay, they should be body of this is a valid binary Cloud event in essence. No, no, no, this is the so so so The content type says this is this is structured Or the outer one structured. Yes Yes, the other one the other one is structured and the inner one and then the inner one counts No, wait a minute. No, the outer one is binary. The inner one is structured But the content type in the on the headers Is supposed to apply to the outer piece and this is talking about the inner piece And this is the only signal we really have to to know what the body should look like for binary I I think that this should be content type application json plus cloud events Because that's the extension instead of How to interpret the entire payload Well, I don't think that changes the question that the clouds have right. I mean to me You're right. The content type says how do you interpret the body? And the fact that we're using it to figure out how to interpret The wrapping meaning htp headers is probably incorrect That's why I was thinking we should change the spec to say if you want to know if this message coming across is an htp I'm sorry is a binary cloud event The presence of the ce-spec version header is the way to go Except that doesn't go across the wire on structured mode That's right Well, no on structured mode Well, the the absence there it tells you it's structured cloud event because that's when the content type says it's a cloud event Yeah Right, so it's almost like a dual thing. It's like, okay. Is this a binary cloud event? Yes, because you see the ce-spec version header If the answer is no, it's then you don't see that header Then you look at the cloud event. I'm sorry. You look at the content type and say, okay Is this a structured cloud event then? In this case, yes I think the guideline sdk would look at this and drop The my event attributes. Yes Because because of the fact that you can mirror or sorry, uh Uh, what was project up the inner pieces It would have seen that those headers there that our cloud event headers are projected And we can be dropped because we can just look in the body and get the same data Well, but wait a minute scott. I I agree with the net result. I think Well, I agree with your interpretation of the net result But I disagree with why it happened I think I think you're dropping it because content type says, oh, this is a structured cloud event I don't think you dropped it because of you making a conscious decision to say, oh, the content is duplicated I think you you purposely don't even look at the headers because of the content type value I that's right. It's short circuits and says, okay cool. It's a it's a structured cloud event I don't care about anything else in here Right. Yes You're both same same thing. Yeah, but I but I think it's interesting though because If the spec and I and I suspect you did that because the spec says Look at the content type header to make this determination as to whether it's binary or not Yeah, and I'm and I'm suggesting to you that if the spec said The presence of the ce spec version header says that it's binary I think you would have coded it that way And this may not have been an issue for you well, but But but no, but the content type the content type of header needs to take precedence because because you Um, you want to be able you want to be able to make to make the fact that you carry a cloud event transparent to infrastructure Which means that even though you're carrying something that's a structured event You still want to clue the the broker in that there's that it was that it should be able to route You know buy event type Yeah, actually, I disagree. I I disagree because The fact that you the fact the payload is a cloud event Is something that I Think should be irrelevant to the receiver infrastructure Because I would not want the receiving infrastructure to in essence unwrap it Yeah, but that's the point yet exactly because you don't want to have the the the routing infrastructure touch it But you still want to be able to dispatch Events based on what they are You need to tell the cloud the infrastructure Above them and the way you do this is through transport metadata, right? But okay, let's let's let's change the scenario here slightly Let's say instead of content type application jason. I'm sorry. I said application cloud events plus jason Let's say it was just application jason right Yeah, the the fact that the the fact of the body looks like a cloud event would be Irrelevant to the receiver infrastructure perfected, right now You would then take that jason and perhaps based upon the content type do some routing Or you would just pass on to the application and it would be expected to figure out what to do with it, right? Yeah Why Because you put the word cloud events in there. Does that model change? I would I would assert that this is still a binary cloud event So it does not but but because it doesn't the the The information that is contained on the outer On the on the metadata and in the inner event must be the same No, that's only No, but So okay It's okay Go ahead show a different example where you take this exact same format that you're showing except Actually do the propagation of where my event becomes cool event and xxx is the id and things like that the source is bigco.com Well, how would you interpret that? Is it is it a double wrapped cloud event or is it the promoted piece? I would say in all cases the application is going to get a chunk of jason That looks like what you see there on the screen in the in the body and There may be additional metadata carrying alongside that says this is jason and it and And that's just extra metadata To me. This is a binary cloud event and the payload just happens to look like a cloud event But the infrastructure doesn't know or care about it. It just passes it along Uh, that's not what the spec says I agree But I don't I don't see how you can interpret this particular message any other way So if I use a structure mode for the outer event as well, it would be valid to have nested events, right? Yeah, that's it's easier to understand what it means Yeah, but it but you still get the same net result right in the same both cases You would still as an application author you would still receive a chunk of jason that looks like this hgb body But a piece of infrastructure that receives this nested event in both in structured mode and is configured to forward events in binary mode Um, would still create this Uh message wouldn't it or would it have to to prevent this? I think it would send out a content type of application jason not application cloud events jason I think that'd be perfectly valid for it to do so But I also think it'd be valid for it To have the smarts to know that it that this isn't just generic jason. It's a cloud event jason and it can Put the word cloud events in the content type. I don't think the presence of the word cloud events in there changes the processing at all Uh, it it definitely does. I well, I know it I know it does in the sdk And I know the spec pushes people in that direction I'm just wondering whether the spec is wrong Well, potentially it's wrong to Hijack the content type Well, but the content type is I think we need to go back to first principles about what the content type is there for right? It's first and foremost there to describe the hgb body Right, but but it gets a little confusing because the spec also allows Structured mode to promote inner pieces into the headers Correct. That's valid and it should they should be exactly the same Yes And the spec says, you know, if they don't match the thing you should trust is the inner body But you talk about structured or binary In structured mode, it can propagate up the type and the id and the things and stuff like that And if they don't match The the winner is the body Wait, I'm I'm I'm I apologize. Maybe I needed to lunch When you talk about in structured mode things getting pop Propagated up Those aren't c e dash headers though, right? They are But that's not structured. That's binary No, no, no, no, no, no. That's not true You can use the binary mappings for the headers to um To promote inner pieces of the metadata of the envelope of the cloud event To to make processing easier Where's that in the spec? Holy crap. Is this related to that whole tracing stuff we talked about? Nope It came up in this tracing discussion Where is that in the spec? I'm looking I'm looking for it already That is in the hp spec 323 Okay 323 And they're batched 32 Oh doi Implementations may include the same hp headers as defined for the binary mode But that doesn't necessarily say they're they're copied from the content. It just says you can add those headers Well, that's what that implies is that you can use headers in htdp structured mode Sorry in binary mode Or sorry in structured mode You can also have the same headers as if it were a binary message, but it should be incorporated At the end of the day as a structured payload Crap No crap great Nice Well, no it is it it's crap because now we're ambiguous in terms of You know, what does what does this thing actually mean? No, we're not No, the spec says that you throw away my event 1231234 an example.com because they don't match the the inner actual cloud event correct This is this is effectively the this is malformed Because it should be coming it starts the content type says this is structured And so now you're at liberty if you want to to go and promote data the headers out from the inner from the inner cloud event Into those headers and then the infrastructure can see them But the the authoritative event that that's being carried is the structured one My recommendation would be to add a new content type that's application json Plus cloud event and if binary mode would like to carry a Struct a structured cloud event It the body is first application json. It happens to be formatted as a cloud event. So the cloud event part is the extension Now I see why you said that. Thank you yes See scott, I vehemently agree and that should tell you something Yeah, i'm gonna quit for the day because this is great Ah I think we just spent a lot more time looking at the data format like this Yeah, it sounds sounds good, but I have to think about a bit more and I actually have to leave the call soon Yeah, me too. I'm I'm half an hour late to group meeting Okay, well, thank you guys for the thank you class for remembering to bring this up. I completely forgot I didn't mean to add at the agenda Yeah, I thought it was more leaning towards the Implementation details of the SDK. So that's why I brought it up in here, but Was now actually more in a spec discussion yeah Quick question Would we actually need to formally say that it's an app slash json plus cloud event? Like in the spec someplace or is this the kind of thing where um We could just talk about it in the primer and we're just following a well-defined pattern as defined by acp I think it could be a primer thing, but the uh The specs might need to know how to key that I'm sorry the SDKs might need to know how to interpret a Uh application json plus cloud events Okay, okay, so class you'll go off and think about what how you want to handle this, right? Yes, yeah, okay, this was a cool discussion though. I liked it Okay, anything else before we hang up? I know we're way over Yeah Okay, thanks guys. We'll talk again next time. Bye. Okay. Bye