With Lincoln Baxter, the founder of the Forge Project to do the integration of Forge 1 in those days with Javel's tools. But the things that we will end up now, since a couple of years I've been working mainly on hibernate tooling. And so the thing that you will see today, they are actually mainly done by George Castaldi, who is somewhere here. He's the leader of the Forge. So actually he should be here on stage to talk about it, but he lets us have our 50 minutes of fame. Thank you, George. And he's giving a lab tomorrow about Forge. Yes. It's tomorrow. So we are still working on the technical issues, but I'm Sebastien Blanc. I'm 50% French, 50% Dutch. You hear the French part with my sexy accent. I work at Reddit as well. I'm on the Reddit mobile team. I joined Reddit three years ago. And yeah, on my slides you will see my Trito handle if you want to follow my tools. And now I have to speak until... Kun was really good at keep speaking. What you will see today is awesome. That's all I have to say. Yeah, yeah. Oh, look. I think it's better than nothing. Yeah, so the colors are a bit messed up. It's better than nothing. That was my next part we said. We only have two slides. Well, three slides because that's a death comfort for developers. So we don't have boring slides. So we just have two slides and then it will be only live coding. Okay, next slide, yeah. So when you start up a new project, you are facing the whole setup. You have to create a new project, create a whole skeleton. You have to be careful to follow the right practices. You have to do boring stuff like setting up your persistence layer, creating your models, creating the relations, stuff like that. And you will probably make a lot of mistakes and you will lose a lot of time. So you can move to the next slide. We have a solution for that. And the solution for that is FORGE. So FORGE is a rat tool for rapid application development tool. And it relies on a few principles that are famous in the world. Maybe you know grills or rails. They are also rat tools. They are rat-integrated. So you have principle of keep it simple.  So that are the three acronyms that you must not say aloud in this order. So you can use this tool standalone. It has a really nice CLI. But we have integration for the three main EDAs, Eclipse, NetBeans and IntelliJ. But you will see that in the demo that will start in less than a minute. It's extendable. What does it mean? It's really easy to create your own add-ons. Imagine you have a project and you sometimes, each time you add a new feature you have a whole process, a whole classes that you have to generate, a configuration you have to do. If you see that you have to repeat this task every time, well it could be a good solution to write your own add-ons and add it to your FORGE tooling. So that's what I mean by extendable. And I think we can start for the demo, no? Right. So let's start. My boss gave me a call two minutes ago and he said, hey listen, Kun and Sebastian, in 40 minutes I need a complete bookstore application Java EE7. I want rest endpoints. I want to deploy it as a microservice. I want the Angular frontend. I want everything. And you have 40 minutes. Kun, do you think we can do that? No, because the command FORGE is not found anymore. Let me see. Let me see what's going on here. Yeah. You're already in a FORGE. Yeah, exactly. Yeah, yeah. So FORGE was already started. Okay. So I'm using the command line here and I start FORGE just by typing. Is the font okay or should we increase a bit the font? Yeah, can you increase a bit the font? Like this. Like this? Okay. Okay, so now FORGE has started and we can start issuing commands and of course you need a little bit of experience, but if you want to start a new project, the thing that you should do is project new. You can actually do this by typing and then when you don't know really what is possible, you hit tab and then it gives you all the possibilities, just like what you would expect. So we will create a bookstore project. Right? Maybe we can do an LS to show. So it's not that exciting. It's just a classic Maven project. Okay. Classic Maven. See your pump. So this is the command line thing for the hardliners. Right? Exactly. We can actually use the IDE integration that you talked about. So let's start with IntelliJ. IntelliJ. So we will import this project into IntelliJ and continue using FORGE in IntelliJ. So we import our bookstore app. Okay. We can keep all the defaults. Here we go. Awesome. So we have our bookstore projects. Shall we start creating a new entity? Okay. For instance, a book, since it's a bookstore. So for creating entities, we start FORGE. You can see it below there. It says loading JBLS FORGE. So you use a key combination. In this case, in my case, it's alt command four. And then it starts under the hood, starts up JBLS FORGE. And then when FORGE has started, this happens only once with the first combination. When FORGE has started, you get all the possible commands that you can condition. So in this case, it's a new entity. A new entity. I can scroll through the list, but I can also start typing. I know it's a JPA thing. And then I reduce the scope of all the things. I create a new entity. Oh, just one on this screen, because it's a first GPA entity that we create. FORGE sees that, though, he proposed to set up our GPA configuration. So here we will stay on the defaults. We can use, we're using Hibernate database, which stay on H2, but maybe you can just click on it to show that you, here you can basically choose whatever database you want. But for demo, H2 is awesome. So here we create our entity, book. And that's all we need. And it creates an almost empty class for us. It's just all the stuff you see here for a GPA to possess your entity. And we just have an ID. So I think we can add a field to our book, like title. So here we just say how we want our field to be called. It's a string. And here we go. It also generates the setters and the getters for us. Okay, can you show me if it works in NetBeans? It's a question. Oh, question, yeah, sure. It's generated by FORGE. It's great to have George here. I can proxy the questions to you. Okay, so now I'm starting up in NetBeans to show the thing in action here. Over here it's even simpler. You can just import, open the project. And it will open everything. And I have the book thing. Oh, there's something we forgot to show. Where is it? Other sources, I guess? Yeah, so there has been a few resources that have been generated by setting up JPA. Yeah, you have the persistence of XML file. I don't know if there is a source view on this. I'm not used to using NetBeans. Anyway, it doesn't matter. Shall we create a new entity, an author? Because a book has an author. And we create an... So here it's a bit different. You have to type there, unless there is something that I'm missing, but you have to start typing there and it starts forged normally behind the scenes. And it can also take a while. It's kind of a drawback, I think, on this platform. It takes a while for some reason. Yeah. JPA, new entity. And as you can see, we have a similar wizard that is issued or that is coming up. Author, okay. Can we add a name to the author? Okay, new fields. Okay. We can move to... Yeah, now we're going to go to the really good tool because that's the one that I'm working on. It's J-BOSS Developer Studio. Now, this deserves maybe a few comments. J-BOSS Developer Studio is based on Eclipse. And it's actually a bunch of plugins, the plugins that are developed under the project of J-BOSS Tools that are packaged and integrated in Eclipse under the product name J-BOSS Developer Studio. And for the rest of the demo, we will stay on J-BOSS Tools. Imports, import an existing Maven project. This is one thing that I don't like about... I've come to realize this using the other platforms. The import of projects is pretty hard compared to the other ones. You have to really click a lot, okay? In the meantime, I can start Forge. It can be done in two different ways. You have an embedded Forge console here. So you can actually type within your J-BOSS Developer Studio environment. Or you can use a key combination, which in my case is a command for. And then this thing comes up that Forge is being started. Now, you might, for people that have really a keen eye, they must have seen that I'm using Forge 3 Beta 3 on JBDS on IntelliJ and that means it was Beta 4, right? But I assume there's not a lot of difference. It comes from an update that I did, and it automatically pulls in the latest version. Okay, so the plan was to... Let's add some new fields to the book entity, like a publication date, and, of course, create a variation between the book and the author. Okay. Let me add new fields. New field and publication date, and the type will be Java, utility date. Okay. Okay. And we want an author on our book. New filters, well, author, and here we can browse, we can search for author in the truth up here. Here, author, here we go. And nice thing is, here you can select which relation it has. So it's a many to one relation, of course. And it will add the right annotation. Maybe you can show it on the author. Yeah, you see here it has added the many to one. So we're basically done. I think that we can... Our backend is done. We need a frontend now to do all the crowd approach. So I know you are keen on very flashy mobile... Yeah, but let's start old school. Let's start with the old school dirty stuff, right? Let's do some JSF stuff. So that's one really powerful feature of Fort. It is scaffolding. So basically it will parse your model, and from that, based on templates, it will generate a complete CRUD application for you. So all you have to do is to choose your entities. So I think... There's the setup as well. So it will set up multiple things for you, which otherwise you might have to go and Google, because how do you set up CDI? How do you set up... How do you prepare your project to set up EJBs? How do you... All these things, which versions work together, which ones doesn't. So it's all done in this setup wizard. And then... You can just do the select all, and the magic happens. And now maybe you can show a bit what has been generated, and then we are ready to deploy, and we should have our bookstore app. So this scaffolding step generates quite a few things, actually. It generates backed beans, JSF-backed beans, like the outer bean, for instance. It has generated a lot of stuff in the web app folder, mainly for both the entities, it generates facelifts, bits of HTML that make up your user interface. And it will also generate the beans.xml, faces.config, and web.xml files for you. Now we can deploy that. We will deploy this application on Wildfly. And so all you have to do is to drag and drop your project there. That's right. I didn't knew that. You showed me that just before. That's awesome. That's where you can deploy your app, okay? Here you can see the Wildfly console. So our app is almost deployed. It is deployed. It's deployed. Okay. So we can open a browser and take a look at our awesome bookstore app. We have a local host. Port 8080, of course. And it's called the bookstore. And here that has been scaffolded for us. So here we can create a new app. George. Which writes books about FORGE. A book about FORGE, surprising. Publication date. Today is the fifth. We can select George. Oh. That was to show that we have also for free when we scaffold some validation. And here it says, hey, the format is not correct. Okay. So he will correct that. And yeah. So we have the creator read list. We can edit an existing entity just to show you, to show that we have all the create functions. So forward. I know what you want to. Yeah. Six. Awesome. Okay. Can we add some more constraints, some more validations? Yeah. Because publication date, 6 February, that is not possible. That is in the future. Can we do something about that? All right. We can do this. Okay. We have some constraints. And we just issue, again, the keyboard combination command star. I could also use this one here. Right. Constraints. Or it's add. I don't know. It's not there. What is this possible? At a constraint. Okay. And it will be used. We will use hibernate validator for that. Okay. This is, again, a setup step. Right. It just will create a validation.xml file for you. On the book. That's right. And then we say on the rich property, well, the publication date, and we want it to be in the past. So easy as this. We have now the constraint. And if we redeploy it again. So redeploy. We should have this. Just here, full publish. Yeah. Full publish. Now, of course, the drawback is that I have to recreate my, oops. Okay. I have to recreate. Oh, yeah. Because we started, we are using an in-memory database. So each time that we redeploy, well, database is destroyed. You're in search. Yeah. The vacation date. So if you type the 6th of February. 6th Feb. Okay. And you do save. You've got a validation must be in the past. So that is also handled really easily. So you can really add validation to your application without too much looking at our hybrid-aid validator works or stuff like that. And it's all scaffolded for you. So we have our old school GSF app. But now we want to expose the bookstore app. We want to expose that. That's what I don't like about it. You have more work because you need to create rest endpoints and all that kind of stuff. Yeah. I want rest endpoints. So everything can consume it. And a mobile app could consume our bookstore app and connected object could consume it. So do you think we can generate? Yeah. I think we already have what like JPA, JSF, EJB. Let's add some JAXRS. CDI. All these things now. JAXRS. Okay. So that's really a command that I love. It's a bit of magic command for me. And it's called generate endpoints from entities. That's exactly what we want. So basically you choose your entities. First you set up your JAXRS, your west setup. We can keep the default.  And, wow, it generates the endpoints for you. So for those that I don't know if you know a bit JAXRS, I'm going to use this one. Oh, like a teacher. So cool. You don't hit me with this. So basically this annotation here, that is the rest pass of our entity. And then each method, we can just annotate them. Like when a post request will arrive as well, go into this method and it consumes JSON. And the GET, maybe you can show the GET. And the GET is over there. The GET produces JSON. Maybe you can show also, we have that in JDBS, it's really nice. It doesn't make sense because we have just two endpoints, but when you have a lot of endpoints, you can browse them really easily from here. That are small add-ons from JBLS tools, but that are really useful. I have in the meantime, I have redeployed this application. Oh, you already redeployed it. So I will create a few new items here again, or the one item that I always create. This one item, yeah? George, save, book, no, forging action, 0, 0, no, 6, save. Oh, yeah. Okay, here we go. And let's find out if our rest endpoint is deployed correctly. So for that, we are also using a small tool that is in JBLS tools, that is the web service tester. It's a bit like Postman, if you are used to Postman, but here it's integrated in EDA.  And as you can see, we respond. So that means our app is deployed. Everything can consume it. Now that we have that, shall we scaffold an Angular app? Right, because we are cool kids. What the problem is, I don't know anything about Angular. Yeah. With Fortune, you don't need to know about it. Fortunately, you don't, because... What does it for you? I scaffolded it on another web route, so I can use both at the same time. We'll select everything. It will... Yeah, maybe you can... So now if we look in the web app, in the Angular part here, we have a complete standalone web application. Now it's embedded in our Java project. But basically you could take this folder and run it in an OGS server, or even if you want some hybrid mobile apps, you can just grab that, paste that in a Cordova app, and it's just running. So it's really standalone. And I think we can... Yeah, I've already redeployed it. I've redeployed it again. So I can... Now we can go to a bookstore, for instance, bookstore hang, right? It was. And then you see that the Angular application is running in your browser. Okay. Maybe you can create, again, another... Angular and on Bootstrap. So it's based on Bootstrap 3, I think. And that means, of course, that it is responsive. So once Koon is done with creating... So this has a different, you can see, it has a different validation based on the locale. So I need to use 2016, 0.2, 0.5. Yeah. This is also a drawback that you need to... You can actually adapt it by editing the generated class a little bit. Yeah. We could do that because we have 10 minutes left. Yeah, but we can... No. Let's do the plugin. Let's do the plugin. Let's do the plugin. Oh, yeah. Authentication, security. Well, we are working on an add-in for that that will add key cloak security. I don't know if you know about key cloak. Well, key cloak is separate authentication server. And it's really easy to secure your app using that. It's too bad. I submitted a talk for that, for dev companies. It was not accepted. But today, tomorrow, I will be happy to show you if you want. I can give you a small demo of it. Yes. Yeah. So it's a one-shot generation. But of course, you know, as simple as it is, it doesn't matter really. Yeah. We can show again, because I showed the Angular stuff in Firefox, which is not so interesting. We have something really cool here in JBDS, which is called Browsersim. I don't know if people know this. Yeah, it now opens this on this file, I guess, that I've selected. But that's not interesting. I want to, of course, use my application. Right. This is what you see when, you know, when you use the normal. The normal. The faces. The faces scaffolding, which is, of course, not very nice on a phone or on a mobile device. So that's why we, actually, why we did the Angular stuff. So if we do this, then you have the Angular version of it, the bookstore application. As you would expect, you have the menu there on your phone. The hamburger menu. And you can just create a new order. That's what it's called. Okay. You can also rotate it. Okay. And then it shows you the other version, the other way. So it's responsive. And that's why what I told just before, you could take that and put it in a hybrid app if you want the native app, for instance. Okay. Cool. So one last thing that we can show is how you would extend the Forge by creating a Forge plugin.  So the way how you start is just by creating a new project, Hello World, right? We don't have the time for the key cloak plugin. And then you have to select a different project type, which in this case would be a Forge add-on. Okay. We just accept all the defaults, I think. Yeah. And then it creates the Hello World project. And then to create an actual command, you use the Forge add-on UI command. Say hello. Say hello. For my name. I don't know. Say hello. Okay. Finish. And what it does, it creates a template class in which you see that there is a UI that can be initialized and an execution method that by default results in the... Basically, that is where you will put all your custom logic like generating files. Of course, because we are curious as to how to put this in to work, we can do this by Forge build and install an add-on, right? And then it will behind the scenes invoke a Maven build of this project and install it. And then the next time we hit our key combination, then it will... Demo. Demo. Okay. It's there. Say hello, right? Great as add-on. Now, the interesting part is that if you go back to your command line, yeah, this project is in another location. Software. Worksplaces. Hello World. Okay. Now we are in this project. Yeah. We can do the same here, right? What is it called? Forge, no? Add-on. Build and install. And there it does the same thing, so we can just... Afterwards, we have to say hello here available. Of course, to make this really meaningful, you would have to add UI and in the execute method do something really useful like creating some XML file or adding something to a palm file or that kind of stuff, right? And add-on is some get-up. You can install add-on by pointing to the get account. Exactly. Yeah. I think it's time for the... Yeah, I think we probably did everything we wanted to say. We have a slide for the questions. I don't know if I have it. I need to refresh this or... Oh, just refresh this should be there. Refresh? It doesn't work. Is it four? It doesn't work. Okay. For me, I didn't say it. But you know it by your head. Yeah, it's don't judge a man by his questions, by his answers, but rather by his questions. Meaning, and it's by Voltaire, so this smart guy tells us that it's actually, you shouldn't judge me because of what I answer you on your question, but I should judge you because of what you question. All right. So are there any questions? Yes. Yeah, so they work on a text... Of course, there is... If you do Java generation, then you have the Java... Then it's the Java add-on with its API, the Roaster actually add-on with its API that you're using, which has a meta model. But there is no... For the rest, there is no specific meta model used. There's nothing proprietary or something like that that is used. It's purely text-based. The only thing that is probably important, even though there is a gradle way of doing stuff which was contributed, but the MAVEN POM file projects are the most mature. Okay, so we went... Yeah, of course. We're out of time. Yeah, okay. So if you have any other questions, we are hanging here today and tomorrow. And if you want to do this hands-on, most of the things that you see today will be done tomorrow in the lab, right, in the forge, George? We'll also give a talk about Swarm, and you will be using forge heavily. With the latest add-in. Thank you very much. Thank you. I have another one. So maybe this one is just...


Hello developers, my name is Matt Raebel and today I'd like to show you how to build a Java REST API using three different very popular frameworks, Micronaut, Quarkus, and Spring Boot. Let's get started. Everything I'm going to show you today is contained in this blog post, Java REST API Showdown, and I'll admit the title is a little clickbaity, but nevertheless, Daniel wrote it. It's a great post on just how to create a simple API with each of these frameworks and then add protection using JWT token-based authentication. So I have a repo that's part of the blog post and in here there's a demo.adoc. This is the instructions that I'm going to use and it's basically just a condensed set of instructions so I don't have to, you know, read through the blog post and do all this and it's written in ASCII Docs, so I'll go ahead and use my handy-dandy ASCII Doc plugin to render it nicely. You'll see we'll start with creating a Micronaut app. We'll create an OIDC app on Okta and just so you know, we don't actually need to create an app for any of these apps because all they're going to be doing is validating the JWT and then we'll create one with Quarkus and Spring Boot and they'll all be very simple. So everything here is not too complicated, but I think it gives a good overview of how you can do it with each one. So I'll put this on the left here and open up a terminal. If you don't have Micronaut or Java installed, you can use SDKman and SDKman is great. So let me just open that up here and you'll see install it very easily using Curl and it's just a great tool for installing different versions of Java and managing those and even Spring CLI, Micronaut, it's pretty awesome. So I'm going to do SDK install Micronaut and you'll see I already have the latest version installed. So if you ran the same thing and there's a newer version, you would get that newer version and then I'll use I'm going to create a directory called showdown and then I'll use MN for Micronaut, create app, com.octa, rest, Micronaut, and I'm going to use Maven for all of these projects just because that's the default for some of them. It's not for Micronaut, but the build command will make it the default. So it took about 20 seconds to run. I can open that up in IntelliJ. Then I'll modify the pom.xml to have the security libraries. So I have live templates for a lot of these shortcuts. I just have to type MNSecurity and boom. I get Micronaut Security and Micronaut Security JWT. If you want similar shortcuts, these are all IntelliJ live templates, and you can get them from my GitHub repo at mrableidealive-templates. You can install them in your own IntelliJ instance and then have similar commands. So then we'll create a hello controller in here and so new class and we'll give it the controller package. Hello controller. You'll see it's pretty simple. It imports Java security principle. It has a path of slash hello and these security annotations aren't discovered. So what I've noticed is you have to re-import the Maven project and we'll need to rename this application YAML to properties and we'll tighten this up a bit. And then we need a couple of properties in here. Security Token Enabled True or Security Enabled True, Security Token JWT Enabled True and then we'll need to give it a path to where the JWT signature keys exist. And so for me that's dev13320.octa.com and so if you've created your own Octa account then you'll have an issuer like that. And so if you were to log into it, if I log into mine here, I'll just show you where you get that information under API Authorization Servers. That's where you can get that issuer value and if we look back at IntelliJ that is this part, right? So the slash v1 keys is everything else and you can also get your Octa org information from the main dashboard right up here and people often get confused because this is different from what's up here, right? So you want to make sure and not have dash admin in there. All right back to our instructions. So we do need to create an OIDC app on Octa and this is just for OIDC debugger so we can get that access token. So if we do add application and we can do a web app, it doesn't really matter. We can say, you know, call it Java, REST API and none of that really matters but we do have to add open IDC debugger slash debug as a redirect and we have to do implicit flow because that's what this browser based one does here. So once we do that, we'll get a client ID that we can use. Put that right here and the state you'll have to populate. It already has my values in there from before so obviously you might need to populate that and uncheck code and just do token and then we can send a request and then we'll get an access token right that we can use. So copy that and then if you don't have an Octa account, another thing you can do is use the Octa Maven plugin. So if I were to run mvn.com.octa maven set plugin setup, it'll actually go and create an account for me and create an app. So I already had an account so I didn't do this, but if I ran this, I'll show you the app it creates. So if I go back here and go to applications, there's the app it created. All right, and it's already got some basic stuff in there. So it's got the default redirect URI for spring boot and redirect URI for a lot of our Java samples. So we don't need to use that because we already got our access token, but we can start our micronaut app now. So mvn compile exec exec. And then in a new window, we'll define our token token equals that access token. And you can use curl to hit the end point. So curl dash x get dash. Hi, HTTP local host, 8080. Hello, right? That's a lot of typing. But it shows access tonight. An easier way is to use HTTP IE HTT PI. It's hard to say, but you can default to local host. And it also defaults to application JSON. So you can see it's a little less typing. But we need to access it with a token, right? So with HTTP PI, you can do 8080. Hello, and then authorization header with a bearer token, and specify that token value. And now we'll be led in, it'll validate that jot and say hello to our username. So that's all working. Now let's do it with corkis. Oh, we got to create it. So that's what you do with this maven command here. You'll see it uses corkis 142, sets the group ID to com octa rest, and specifies a path for that hello resource, and uses the JWT extension. So then we can open that one up and then tell J. If we go to the hello resource class that's been created for us, you'll see it's pretty simple. We're just going to make it a little more robust and add some security. So we're using the authenticated annotation. And we're using a security context and grabbing the context using that context annotation, and just getting the user's name from there and printing it out like we did before. So an application that properties, you need to specify the keys, right? So dev 133320.com. And that's our public key location, as well as our issuer. So this uses micro profile. That's why you have to see that MP prefix. I'm not sure why they couldn't just look up the public key because the issuer has that information. It's pretty cool. And open ID connect if you were to go to default dot well known, probably have it in here. Nope. So if you were to go there and well known, open ID configuration, it has all the endpoints, including that JWKS URI. So maybe micro profile needs some improvements there. But whatever, this works. Right. So now we can run our corpus app. And then if we test it with HTTP pi, 8080. Hello. That's not up yet. Come on corpus. The dev command isn't optimized for speed. So it's optimized for letting you actually change files. And it reloads and compiles them on the fly. So of all these three frameworks, that's one thing I noticed about corpus. Once you start it up, you really never have to compile or restart anything. The other is you have to compile your files either in IntelliJ or using, you know, a CLI. So now we'll hit 8080. Hello. You'll see it's 401. And if we did it with a token in there, now it should succeed. And it does. All right. So that's corpus. That's all running. And now our last one is spring boot. So using HTTP, we can create a new spring boot app here. And so it's going to hit start that spring.io. It's going to use Java dependencies or web and octa. And it's using this baster and then just extracting it right into it. So if we go into spring boot, we can open that up. And then in the main application directory, we can create a hello controller. So we'll do it in a controller package. Hello controller. And you'll see this is probably the least amount of code that's required. But a lot of this is because of spring security. And it's been around for so long. And it's really been polished over the years. So we're using an authentication principle here to get the principle. And we're printing out their name just as before. And then in our application of properties, we can put that octa to issuer. And then we can run our spring boot app. So you could do it from the IDE there just by hitting play. But since I did all the other ones from the command line, I might as well do this one as well. Oh, this is new in spring boot 2.3. Yeah, I forgot to make this right. So we're executable. So once that starts up, we can prove that we get a 401 when we hit 8080 hello with no access token. And you'll notice spring security returns a whole lot more headers than the other frameworks. So there's a lot of default headers that are pretty good in there, especially for security. And then if we want to do with the token, and again, that works. So that's pretty awesome. They're all working. We can compare the startup times of the various ones. So if we do MVNW package for each one. So what I've noticed is when I'm running Camtasia, which I'm using to record this, the timings aren't that great. So I'm on a 2018 MacBook Pro. And it's got 16 or 32 gigs of RAM. It's got a six core processor, i9. Everything's, you know, pretty fast normally. But when I'm recording, things slow down a bit. So the numbers that I give you today probably aren't going to be that accurate. So I'll just, I'll run it a couple of times and we can see what the differences are between them. And I've also noticed that a lot of times they recommend you use grawl to really speed things up. And so I'm not going to do that because grawl compilation takes a little time, but I'll give you some grawl numbers too. And it looks like corkis doesn't compile out of the box. So we've got to skip some tests. I shouldn't say it doesn't compile. I should say the tests fail. So now just to start up microknot, we can do Java dash jar target, and there will be a microknot 0.1.jar that we can run. So we'll wait till corkis finishes. There we go. Let's see how fast this one is. That was 4.5 seconds. I've seen it at like a second or even below a second. So like I said, I think Camtasia does influence this by recording my screen and making these times a little slower, but at least we can compare them to each other, right? Because they all have the same hindrance in this particular example. So around 4 seconds, 4.5, 3.7, 3.9. And then for corkis, Java dash jar target, and you'll want to do the runnable one. You can see that 3.2 seconds for the first one, 3.1 seconds, and 3.0. And then spring boot, Java dash jar target, demo jar. So that one looks like it took a little over 10 seconds. All right, let's try again. Come on, spring boot, you can do better. So about 10 seconds, that seems to be the average. So almost double micronaut and triple corkis. So people ask about grauLVM. With grauLVM, you can really make things faster, but you pay in the compilation time to make that native image. So according to the documentation that I found, micronaut is about 12 milliseconds to start up with grauLVM. So that's wicked fast, right? A tenth of a second. Corkis is 14. So really splitting hairs here. The corkis documentation doesn't list a startup time, but the micronaut one does, and then spring boot has this blog post where they say they're 44 milliseconds. So still half a second to start up. Like, wow, that's fast. But in serverless architectures, I can see why you would want, you know, start up just as fast as you can. So like I said, the source code is on GitHub. And so in that octa, java, rest API comparison example, and the blog post is back here. And I did add some numbers when I wasn't running Camtasia this morning. So let's go look at those. You'll see here, just running compile exec exec, and all these which aren't optimized, you'll see that micronaut is the fastest. But once you do java-jar, micronaut said about a second. Corkis is about 0.67 of a second. And then spring boot is a couple of seconds. So wicked fast for all of them. Well done, folks. And they keep getting faster every release. So it's pretty cool. So if you enjoyed this video, follow my team on Twitter at octadev. I'm on Twitter at mrable. And if you like Volkswagen's, we'll get along just great. My direct messages are wide open. So you can send me any questions you might have. And my whole team as well posts a lot of videos on YouTube. So subscribe. And you'll notice we have an OAuth happy hour every Thursday at 2 p.m. If you'd like to ask questions about OAuth. Thanks for watching. And I hope you have a great day.


has for options and just let's check in with cara and heather cara. How is your work going? They're uh working through a lot of applications right now madame chair to make sure that all of the people who have submitted applications both for Marketing affiliates and other vendors that will be necessary for the march 10th launch are all set to go so Okay, well, you know all of us know that You've been working around the clock care and and leading a great team. So thank you um, I'll turn to heather um and and cara for what ieb is thinking in terms of the elevated licensure Topic that's come up in this connection with this Thanks chair and I just want to thank all the commissioners. I think all these points are really helpful We don't have a specific recommendation We're certainly able to touch base about the different levels of investigations if the commissioners have questions But we'll certainly to defer to the commissioners Thoughts on the best way to proceed with respect to the current regulation that is okay, um before I forget Pateman and team carry A lot of these comments also include some other comments on the advertising regular generally Yeah, I think we should probably set aside some time before the 20 23rd or 28th came 23rd 23rd, right um to maybe address those two so we might need A short or a meeting in the interim to just deal with the advertising rag so that we can really Have some discussion on those outstanding comments Um, so cara and cara and heather being they're being team Players and saying that they they're waiting to get direction from us. What are some of the options that legal has come up with? What are sure? Um, and you're asking on the vendor side. Yes Well, well the combination, you know, you've heard commissioners doubt. It sounds like we're probably not Really all very far apart, but we all have some outstanding questions on how To make sure that our concerns would be fully addressed or at least as addressed as we can do right now So in your packet, there's waiver language for the two different provisions, right? For the the cost per acquisition and the revenue sharing so the commission could choose to adopt both both are one of the Can you bring the that to the certain to the page? That's that's your motion language. So it's not in the packet Oh I'm just saying that motion. I don't really look at motion language on purpose. So, um I I'm looking at options for if you could just say them Sure. Sure. So one option would be to Wave the requirement into or the prohibition in 256.013 on cost per acquisition relationships A second option. You could do one or both of these would be to wave the prohibition into 56.013 on Revenue sharing relationships And then I think there is a you know to commissioner Brian's point of wanting to bring in potentially other protections. There's a timing Issue on that and so the commission could decide to issue that waiver for a limited amount of time to get through launch With the direction to legal to come back with proposed regulations Related to these these types of protections. That's another option. I mean in a final option would just be to say You know, we're going to issue these waivers and we're going to put the you know We'll direct you just sort of put those into effect on the 23rd when we come back So a couple different options there Would you go over number one again, please? Absolutely It would be to put one or both of those waivers into effect for a limited amount of time You could say through through launch through some period of time after launch With a direction to legal in your team to come back with a with a regulation Be it in this reg or another reg regarding protections related to cost per acquisition and or revenue sharing Some of the what I mean by this some of the things commissioner bryan is talking about Do we want to would you like to limit limit the number of agreements? Would you like to Have reporting requirements that kind of thing That's just going to take a little bit more time on our side to do the research See what other states are doing talk with mark and and all their interested entities If you're looking for a can you tell me when the Just a second if you could just tell me when the motion packet went out. I didn't I Didn't know that that was going to be considered the option When did that go? yesterday Yeah, sometimes it came from kerry yesterday and I will say the Motions the motions in there are very straightforward. I think what I've just been saying is based on this conversation now sort of What folks are thinking about Yeah, just to be clear. We have those draft motions are only guidelines for the Commission Which is they're so helpful. All right, let me just I'm sorry jordan The draft from the team Would put a date on the air of april 14th I didn't know if there was a reason april 14th There was a thought I can jump in there if that's helpful. That's because that would be the date that um Whatever final version of the advertising reg um, you vote on on the 23rd or 27th would go into effect on april 14th So, you know, were you to change the reg for the final vote? And adjust this language that final version would go into effect on the 14th So you would potentially not need the waiver after that date Thank you kerry Okay So commissioner hillan you were starting to say something. I'm sorry I think Your next question I thought was going to be what what is the temperature of how we should move forward? I jumped the gun. No temperature again is Yeah, go right ahead commissioner hill. So I think what has been proposed By katlyn is We do the waivers time certain She comes back or the legal team comes back with some suggestions That have been put forward by commissioner o'brien I I have no issue Would put in some restrictions on what I said earlier in my comments. That's how I think we should move forward at this point other commissioners I agree and and if I understand the proposal it's to wave The language that prohibits both revenue sharing agreements and CPA agreements Through april 14th And a deeper discussion around options for safeguards And I think that's I I would say commissioner o'brien. I know that we're attributing um Your guardrails with the guardrails to you and I'm going to claim that it's plenty of guardrails That I think all of us want to have up. I would say that I haven't heard I wouldn't necessarily adopt a recommendation that we Just lift our rig all together through april 14th But I would say that what I my big takeaway and I'm keeping it as simple as straightforward as possible That cpa is really important to the industry and and right now our I think our IAB and licensing department has been Proceeding to a registrant process for all of the third party affiliates that they think are not going to be participating in revenue sharing But could be participating in cpa so I would say cpa and in the registrant level And then I'd say if we're thinking about revenue sharing given our The input that we would attach a higher level of licensure to those because Of the issues that I think all of us are raising Commissioner o'brien articulated them But I think at the very Fundamental levels because we all care about the implications on rg And so that seemed to me to be kind of a practical solution At least to be to begin with to make sure we have that additional guardrail of heightened licensure I'm willing to absolutely entertain other guardrails I did here. I know that commissioner o'brien's mentioned cap And I you know, we we've heard that kind of saw the reaction from the round table that they Were thinking of any kind of a cap So I guess I would want to know what we're going to have Precisely have legal look at before we come back So the whatever the list is I think we should all agree on that today if possible But my recommendation would be that that two-tiered approach that seemed to be But our Colleagues in illinois did and our colleagues. I believe in colorado have done And what new jersey seems to have done Am I really off on this? I could I think I can clarify procedurally how this would happen So it's two different regs that we're dealing with I think you could come to a consensus as a commission right now that that's what you wanted to do If you to the extent you allow for some amount of time both of these Types of agreements you would then have the licensing structure But it's dealt with in two different regs. So issue the waiver But if yeah, can we do if we Can we do that today? That's all I need to know. I know the two begs and it's intersectionality, but can we Can we address that issue? I think what you could do is You could if if you so choose you could vote on the waiver issue Or you could hold it until tomorrow we have the tomorrow the conversation tomorrow Because I don't think we're going to get through the whole vendor conversation because there's more to the vendor I don't know Caitlin. I don't know. Let's just see Um Well, you could you could hold the votes for tomorrow and do it together tomorrow Um, or we could do it today. So let's just talk about today So, yeah, if I if I'm If I heard also just on on what I'm thinking to before we start talking about timing of what you wanted No, no, I'm not talking about timing. I just wonder about the two regs. The two regs. That's all Just to be clear so that you're taking the temperature so that I can be heard on that I am of the mind of where commissioner hill and commissioner skinner are right now Which is this is a complex conversation and I respectfully don't agree with the idea that the cost per acquisition is without risk There is some element of push-pull in there and I would like to know a little bit more about that I feel like the people that are in the market right now when we have this Looming march 10th, which to me is creating this aura of You know rush that I just don't think is is necessary and so to I just want to finish I'm of the mind of commissioner hill and commissioner skinner I would like to do a very Short waiver that then allows the team to come back with How are we going to peel this back from a band in a responsible way? So that's where I'm coming from. So am I clear that right now? What's being proposed is that we just lift our this a waiver of both cpa and revenue share and let the third party of billy It's entered into agreements now Is that what we're saying? It's that because that's what will happen on cpa. That's what I would say on cpa in the very very short term. Yes and I Share to that because I think because I think there's still there's still some outstanding questions that I have and you know I don't know right now that An elevated level of licensure is going Going to do the trick. I mean what else is there? What are the other options that we have available to us to keep track of? those marketing affiliates and then you know back to my my my fundamental question is You know, if this is the way the industry works the marketing industry works I don't I don't know that I agree that we should be limiting that You know, okay in any form. I just I still need to to think about that I think the reason why I'm pressing a little bit is because With that green light Is I understand that third party affiliates are going to be entering into these agreements and so What we're saying is it's going to be through april 14 But that's really what and supposedly commissioner brines nodding her head at me. Yeah, and so We've already been told that draft kings reached out to at least one of the affiliates when This regulation was promulgated because they understood that it was no longer allowed And so I know it might be an inconvenience for operators to you know enter into these agreements only to you know Cancel them out, but I just just if we're talking about timing. I don't know that we have much choice March 10th is launched. So, you know I don't think we have enough information to really make a sound decision today or tomorrow That's the next steps relative to the higher level of licensure Or any other safe box that we might want to put in place Can I go back to katlyn um and not about today and the time and today and tomorrow Can we if we were to um impose the hire and I'm I'm hearing I've got probably not a consensus That's fine. We were to impose a higher standard on revenue sharing Can we change the bender reg Today or tomorrow. Yes to accomplish it. Yes, you can change the vendor. We could give a waiver on on the Reg on advertising With respect to to both we could add an additional guard rail That would require additional licensure on the revenue sharing Correct. We could do that. Yes Madam chair, I just want to just be respectful of our guest Attorney commoners. I know I'm they had affected stop stop. So I just wanted to just make sure that he was okay Thank you for that. Um, I'm terribly respectful Paul and everybody else's time. I was just trying to get a little bit more out Paul, do you need to escape? Um, thank you madam chair commissioner skinner. I I First of all, I would never use that word Second of all, um, attorney macarius, uh, had a hard stop at three, but I We were able to determine that I didn't need to be on that meeting. My hard stop is at three third Oh, okay. Um, well, paul Do you have any additional insights on the legal options that have been presented to us that um a and k hasn't voice because We haven't heard from you folks Um, no, I think attorney manana has done an excellent job with it I'll I'll say that what you have in your packet currently On the licensure reg beginning at page 280 Is Contains two kinds of proposed edits anything that is in track changes, but not highlighted Is what we were going to bring to you even before the the advertising round table was scheduled It requires third party marketing Uh An advertising affiliates to be registered Uh, it tweaks the discipline rag and I think there are two or three other tiny tiny tweaks that we don't need to discuss The material that is highlighted and in track changes in this revision Is the language that we would add if there was going to be a waiver to as to revenue sharing entities as well and The commission determined that those entities needed to be licensed And that's at the very end of our packet, right? Uh, I believe so. I'm not sure if it's the very last thing H 382 Is the highlighted revenue sharing section? Yes, although there are 282 sir And there are there are a few Words and other places. There's there's a line in on page 280 and a line on page 281 um So if if the commission is going to authorize cpa And registration we are ready for that if the commission is going to authorize revenue sharing entities subject to licensure we are ready for that And if uh, the commission needs the commission decides to go in any other direction. I'm sure we can work something up by tomorrow Hey, commissioner maynard. Thank you paul. You can can you thank me enough for us and if you need to leave certainly leave and I Again yesterday, you are also very very helpful coordinating your calendar for us. So thank you I have to start without a smirking because paul was very artful In saying that we can come up with some some doozies around you sometimes. So I appreciate um I would reiterate what what I would say earlier I mean, I I've heard the push and pull be thrown around. My understanding is is that um Most affiliate marketing can be categorized as pull marketing. That's a that's a direct quote from our Information. I do think there's a distinction. I actually think commissioner skinner made me think about something which was You know, if we're not limiting how much money's going into the push advertisements, which is totally different There is a customer cost per acquisition But I'm sure that they can look at how much they're spending and seeing how many customers are coming through the door Not in the same targeted way that we're talking about With revenue sharing agreements, but still, you know, there is a fairness issue that I think commissioner skinner rightfully pulled out which was you know We are picking and choosing here a little bit. Um, and to me it's just different if I go in and google and I Did it a few weeks ago, right? Which bank has the best terms on this, right? And and up pops the you know the results Which I'm sure is affiliated market um I I'm more comfortable with moving forward. I I hear my colleagues saying that they're not and and I respect that Um, especially when it comes to the cpa model like I am very comfortable with the cpa model Um, and then when we talk about the revenue sharing I 100% agree Um as commissioner brian articulated, I think we should have a heightened level of scrutiny on those on those operators around And we should take time to come up and develop what that is and what it looks like um So I guess if you're taking my temperature I would think the best course of action would be to go ahead and allow cpa agreements And just allow them outright, right? I'm just giving my what I think it would be the best and then Give something temporary with the revenue sharing agreements With a quick turnaround on on getting it done that being said I'm not going to stand in the way of of doing something today to move this forward because I believe there's a real risk in allowing non operators into this marketing space Um I would do the waiver if that's what it's going to take. So I will I'm happy to move forward on this today. It's my point okay, um I'm going to do a check in on now time Does somebody need to leave right now that participating in this conversation? Because I wasn't sure at all in terms of scheduling um I'm going to tell you that I'm fascinated by today's discussion and I'll tell you why um I feel like we're moving from the most conservative and and again, I started off with where did we start with this and it's all around our values of in our desire to address responsible gaming and and frequency and intensity of advertising all of those issues that that brought us to that this um Regulation to begin with And then I heard that we wanted guard burials and we have even from our folks who participated in our round table including our RG specialists advocating that at least allow for the cpa because that will allow for acquisition and not push forms of compensation compensation for the marketing But they recognize that revenue sharing might um Have a degree of risk that we might not have an appetite for and that's where the higher level of licensure was posed But today what I'm hearing is that we want to um Allow for both without any guard rails for kind of the very important most important time for advertising Which is at the launch So I'm sort of struck by it I I would say that I'm not comfortable not having any kind of guard rails and and I stand by my Sorry, but I guess I I'm wondering Why we think that this period of time is the right time to let our I'll go with it our guard down Because I I might just be missing something. I'm struck by The also the idea that we we're doing it um on a timeline of the rag itself Versus a waiver where I think that we've waived where it just wasn't practical uh, I guess I guess I'm I'm I'm I'm thinking too well. This is going to be an interesting input impact on the Industry because of their agreements and how they're going to get going But I see commissioner brian you had indicated that that wouldn't be problematic for you And maybe not problematic for me But I am surprised that we're going to let down all of our guard rails Oh, I'll be candid with you madam chair my Preferred route my preferred route is we don't lift the ban until we have it disfigured out and we go forward with Altering the ban in a way that has the guard rails I am probably the only commissioner that feels that way And so that's why I'm saying that I can meet a middle ground with commissioner hell and commissioner skinner in terms of saying We have this self-imposed looming march 10th date So we have to do I'm perfectly fine if the decision today is We're going to continue to look at this stuff and we're leaving the ban in place in less than a till My only caution to that is It would seem to me having been a little more educated on this We might get a little more market saturation than we want And so that's why I was saying I'm okay with it's not my ideal But I'm okay with the idea of the cpa going forward in the short term Because I think that will have the most positive effect on the launch time period And allowing us to expeditiously come up with these other guard rails to then say all right This is how we're going to license limit And allow these two forms of third-party marketing affiliates But what about revenue share commissioner brown because I think commissioner hill and commissioner's kind of saying that on revenue share as well So my my concern was my comment on that is two foot one They said the vast majority of the third-party affiliates entering the market and the commonwealth are not going to be doing revenue share So if you have a period of time where they can't is not that troublesome to me, but um I am also, you know, if the majority of the commissioners on this body Want the temporary situation to encompass both types Um, so we can come to a resolution on this and move forward. I'm not going to block it Um, I'd feel more comfortable with the cpa. I came out of that meeting feeling far more comfortable With cpa than revenue share. Absolutely. Absolutely um So that's really helpful because I was a little bit confused About that shifting. So that's really helpful Madam chair Yes, madam chair um, I too Was hoping that my comments were was an olive branch That uh, a spirit of compromise so that we could move forward with this After hearing commissioner o'brien and her remarks and they were very eloquent as usual Um, there are some issues that I want to learn about a little bit more Because of those comments and I thought by proposing what I proposed that Similar to what katelyn had proposed Was in the spirit of compromise so that we could move forward Because there is a little bit of difference of opinion here today But I think we all want to get to the same place, but we're taking a different road to get Okay, go ahead commissioner skinner That I agree with commissioner hill. Um, but in addition to that, you know, I need to reevaluate. Um, I guess, you know, the principle the underlying principle of you know regulating this this Well-known practice of you know payment for The the revenues to excuse me the revenue sharing arrangements I mean, I just need to understand that a little bit more and I did pose a couple of questions earlier that I'm hoping we can get answered relatively quickly okay the one the one We haven't focused too too much. We alluded to it, but on the issue of the impact on on small Media and marketing affiliates and small operators If we do no guardrails that that there's not any impact. So that's that's easy Um, so we want to keep in mind right now. We may not have small operators Should there ever be an opportunity for An online's offer to come on perhaps the joint partnership with either an underrepresented underrepresented mbe's or wbe's that there's that Down the road, but whatever red we come out with april 14th or whatever But down the road, we always keep in mind the what we learned how these arrangements can impact the smaller businesses. So and I'm cognizant of that as I think about the higher licensure the reason why I think the higher licensure is Is attractive It's because of what commissure o'brien live with in terms of flying that, you know, you have less experienced Um Marketing affiliates who may come in Into the gray who do have to rely on revenue sharing rather than cost Opposition so And we learn we learned of that by um I'm not sure how to think about the april 14th deadline and this is where I'll just ask for some more clarity Caitlyn Do you know are Todd or kerry?  No, I would say the april 14th is is largely based on Well, I know the advertising I guess it exists and it would go out a month past launch. So Right, so that I understand where april 14th came and I just wonder generally have you learned anything about contractual relationships that the industry has No uses And so if we were to make it that We revisit that's what we would be doing anyway, right? We revisit our regs at the finalization anytime at any time Correct that would be on the 23rd So I think the idea of the and then any any change from the 23rd don't go into effect until april 14th so I think it's just the idea that Nothing can really, you know, whatever you decide would be in effect through the fourth april 14th And then after that it can come back a new right then it could come back as an amendment And is that kaitlyn because We're in the regular process. So you don't want to have competing emergency regs with each other. Is that why? Yeah, yeah, we can't do the competing emergencies. Um, the secretary state will not be happy with that. Yeah Does anyone know how many marketing affiliates we're talking about Here because I think it seems you know that they're we're saying now that there aren't that many or at least there aren't that many revenue share Marketing affiliates but Um Early on when we first started talking about licensure of vendors I think it was director lilios who was saying that there are hundreds and hundreds of these vendors potentially so Can anyone offer clarity there Cara can explain it so What we were getting in the beginning before the advertising regs were promulgated is Very large lists of marketing affiliates and we are talking Multiple hundreds closer to a thousand when you're looking at all of the Operators together. I think one of the things that's been a little bit of a push and pull Not to borrow from the advertising terms Is you know looking at the different buckets of revenue share versus cpa and Things like that one of the other things that I just wanted to Touch based on quickly too is in terms of when you're talking about Guard way up guard rails. Are you looking for? You know items under further items under the reg Or would it be helpful to kind of go through if we were to license the Revenue share there is a Temporary licensure process for vendors that we could go through licensing can work with the operators to Identify those We would temporarily license them Under the vendor regs There would then be also subject to our normal process which In terms of investigation scoping things of that nature And it would go from there whereas if What I think I'm hearing is under the cpa We would continue to leave it at the registration level, which is that um, you know a Lower level of investigation things of that nature So is there a Number of vendors we're talking about in this realm I'm sorry. I think I'm just under cpa and revenue shares. They're of the approximation of How many we're talking about? Uh, not the different buckets. No, I don't have that at this time If it's helpful commissioner when we talked to colorado, they said there were about 250 in the cpa and I think seven in the rev share So it was a pretty big difference That was colorado Karen, I think you I thought you had indicated to me that you were starting to Put aside those that wanted to engage in revenue sharing and and we're not concentrating on them for the registration right now Pending our discussion today. That's correct. So of all of the Uh discussions that have been going forth. We you know, I think the In terms of the discussions that licensing has had with the marketing affiliates There was a I don't want to say an assumption, but there are Certain operators who thought that cpa was not necessarily was not barred Under the red when the clarification came, you know, there's uh, we may have over Pulled things in we have put those aside. We are focusing on The cpa's and getting those registered And so the numbers if you had to guess you don't have any guess as to those that were indicating on the revenue share So we had a phone or was it We roughly have I would say about between 75 and 80 marketing affiliate Applications that we're looking through whether those are cpa or a flat b things like that. I Would have to look into That more closely And so you haven't set aside any for the revenue share I don't know why maybe I better mention that. I'm sorry So I don't if we have received any They have been put aside. I don't have those numbers for you Okay, that's fine So, um, I do think Mr. O'Brien mentioned I think I heard 70 percent during our round table Um of the affiliates were represented at that round table They sort of the marketing industry did somebody else pick up on that. I think that was my I did too Yeah, and then um, but the majority do use the cpa approach For performance metrics and incentivizing and then of course to Complete with the offshore market The revenue sharing again Just feels a little bit different because it is betting it is it is some activity on It is a conversation on activity of the better yourselves so We need to think about this more. Do we want to Move on this today commissioners I can make a motion In terms of what I would like to see how I would like to see us move forward someone can second it or not Um, I move that in accordance with 205 cmr 202 0.2 3 the commission issue a waiver To all licensed sports wagering operators from 205 cmr 256 0.1 3 that allows cost per acquisition agreements and Revenue sharing agreements until April 14th 2023 as granting the waiver meets the requirements specified in 205 cmr 102.0 34 And it's consistent with the purposes of general laws chapter 23 in second at my point of discussion My preference would be to hold on this motion And not act on it until we find out if if the impact on the industry by having Maybe at one standard today And then April 15th a new standard Um, and you can decide to entertain it But I am a concern that we are going from one regulation that had really unforeseen consequences to now Another one. I am I really don't I don't know how to think about This kind of guidance that we're giving as a regulator, you know giving the industry The operators they they're looking for consistency marketing is a big business. It may have no impact And and they're going to be quite thrilled to hear no guardrails but I just don't I don't know the The impact of the on the industry to say we're going to do something for April 14th And then maybe April 15th Institute new guardrails that will undo business arrangements And my only question is what what does the timing look like in order to get that information that you think is necessary before we Take action Tomorrow ocean. Oh, okay Oh, the one we've tabled a motion until tomorrow at one. That's what I'm wondering Or I can I can withdraw it if that makes more sense Well, I am this is real time thinking commissioner skinner, but I am a little uncomfortable not knowing if there's a Practical implication again today. I feel like that's all I'm asking my apologies. I and I hope again I'm wrong like earlier when I asked about if there are tech issue No, I agree with you, but I'm in the reverse. I don't know if they're, you know I don't know fully understand the implications for outright prohibiting the revenue sharing agreement. So I mean I'm with you on that too I'm with you on that too. That's why the guardrail of the licensure kind of appeals to me, but um I just don't know what it means in terms of what how they would begin their I know that they're looking for Guidance from us this week because they're going to be engaging in some arrangements. So Well, it could be that come tomorrow afternoon. Maybe there are some discrete areas. We all reach agreement on in terms of Uh licensure treatment That may make the next move over the next four to six weeks a little clearer for the five of us Right and and maybe some clarity to the industry Well, well, that's I mean if we decide that we are going to do we we could be in agreement all five of us on how we want to treat Um rev shared let's say going forward, which then could potentially You know give clarity going forward even if there's a temporary waiver It could make the vote a little easier In terms of and a little more clarity By tomorrow afternoon So we can all sleep a little bit, but I am loving um second dr. Wells has found her icon today So, so I just I just want to live in care. I'm just completely looking at this from a practical level And what the on the offside? um so If there is a vote tomorrow That would give Licensing clarity. I want to do with these applications because I am concerned. We're running out of time before the launch date And so if we have, you know Hundreds of these vendors and they're all wanting to get licensed or registered If we don't have enough time to do it by launch that's potentially going to impact that process. So um I just I'm hoping that what we figure out today or tomorrow Just gives some definitive clarity to care at our team. I don't care. Is that is that articulating that correctly? Yes, absolutely. I appreciate it I was so happy any registrants. Yeah, I would draw the motion um so that we can further further um discuss Yeah, and maybe by tomorrow care if you guys have there been any registrants already gone through the process Yes Yes, okay. Yeah You've been doing it as the registrant level and that we did get clarity on because of exactly executive director Welles's point, but I think her point now is if we end up doing something different on the licensure level Um, they they need that guidance, right? Right. Yeah day four, right? Yeah, yeah All right. Well, I think this will give us a little chance to chew on this Tonight and can't Karen. I think I gotta ask you if maybe you can reach out to um any of the operatives for any insights on so What how would you phrase the exact data point that you're looking for? Well Little jet lag Karen. So yeah, I know. Yes. So let me ask somebody else Well, I wonder if the question really is Does does a waiver of Not even 45 days Make a difference to someone's entrance into the market because the reality is that people were only going to come in um Based on a CPA or a red share um If they won't know for certain necessarily until April 14th It could be they're simply going to wait to enter the market. I mean, we might be dealing with a much smaller number here It's basically or or the question for me is if we um If we decide to um Our decision really isn't certain and it becomes we only make it through April 14th in light of how these compensation arrangements are made Does that throw Their whole contractual arrangements off because are these one-year contracts and they're gonna My hunch is that they would want to start their their targeted marketing with launch. I mean, they're going to want to do that now um, how would The lack of certainty Of the temporary nature of our decision impact their business Uh, can they roll with it? If so, that's good to know Uh in in between I think we're going to try to get you know additional guard real ideas I think we could impose those now and not have to wait until April 14th I think we have some good ideas that commissioner albright and others outlined today But really for me just understanding is this another possible Mill Yeah, we're somehow impacting the industry Indifferently again. I think commissioner skinner. You're being sympathetic to the industry because you don't want to do that either Or empathetic I should say Okay, so I can send an email or work with Bruce on the the distribution list, but basically there's a waiver on the ban on cpa and revenue share um until April 14th And future discussion by the commission on that issue negatively impact your business operations Is that the question? We'll make sure I phrase it right I think I mean at this point none of them are allowed right living the being all together is great That they're going to say that But the the issue is That maybe it may be a short window is the that's the question right is a six week opening Disruptive or helpful And then what if we decide to impose the guardrails afterwards? I think You know now they're going to be a new licensure or not, you know So how about does an initial? Limited waiver on the ban on and cpa on cpa and revenue sharing only until April 14th Impact your business operations, particularly that they're added restrictions after the 14th right business operations being They're contractual or arrangements for compensation for the third party affiliates Okay, all right. I'll tweak this You're gonna have to send that out today For tomorrow, okay For today. Yeah, because you need it tomorrow Yes, please we we would like that's for me and that they're comfortable with it and they're great That's going to be really helpful to me. I don't know Questions from the operators Mr. Maynard, are you all set anything you want to add or do you want to clarify that? I I mean the question to me is and it's been said different ways But as simple as that can be If we do a temporary measure Can you get up and running and do what you need to do and feel the space that you need to feel knowing that we could add additional Impediments in some ways and and safeguards and others That could come your way and if the answer to them is yeah, you know, we're happy to move forward Knowing that we may be on the market 45 days. It makes makes the decision really easy Makes it easy. Yeah Michelle Brian Anything you want to add Is there any other no, I mean, I I'm looking at it more like, you know at this point, they're not allowed, right? So My guess is to use your word madam chair I would assume the advertising marketing online community is pretty nimble You know, they've done this in other states so I can imagine that they've got a They said they've been laying the groundwork in massachusetts in anticipation of the legislation being passed. So I don't know that our decision to get this right and to move quickly is going to be all that disruptive, but Maybe this is one of the times I am unusually optimistic I think the biggest risk is you know, if those marketing affiliate agreements are not in place because they're prohibited By launch, you know, what's that going to do to the Search engines, right? You know where well, they even said themselves though that takes agents, right? I mean That that because commissioner skinner did that. I mean commissioner maynard looked them up yesterday and he said look I'm looking at Connecticut. I'm still getting all the legit Markets and they said well, it takes a while for the search engine to to trail off So I'm not worried about an imminent negative impact in that regard Honestly, my concern is I want to make sure what we're doing and launching with Minimizes saturation as much as possible Yeah, I want to try to nail that as well as we can My point is if there is that if there were a consideration in terms of, you know negative impact to You know Not having this in place for launch. It would be that which, you know, again They said the marketing affiliate said that That it would take time to kind of, you know Have the yeah, I was the illegal sites sort of populated in these search engines Yeah, they would take a while for that to seep in with my understanding So I'm not really worried about I didn't take out of that round table. There was an imminent crisis going to happen on the ninth Yeah All right I think I've got it So I'll send it out if the commission implements a temporary waiver on the ban on cpa and revenue share agreements until April 14 While the commission determines a more permanent course of action Will that be disruptive or helpful to the business operations and contractual relationships with marketing affiliates? Excellent Okay, I'll send that out today Let's make a law school Essay, there we go Business school essay. All right. That's really helpful and thank you everyone for pausing for a minute Plus, I think we can just digest this and think about anything that You know, commissioner brian led the conversation, but we all sort of have our instincts about What could be helpful To ensure That right balance for the business but also for those As I said the values that drove us to this initial regulation to begin with All right Meeting went longer than intended, but I really appreciate it anything else Okay, we need a motion to adjourn Move to adjourn Well, we have the are we not doing the annual report item? I have to go today Oh cheap No, I am I'm sorry because I printed my materials before I left I And I knew can't I knew that Krista was on. Thank you Yes, Krista. Sorry to make you wait. It's okay. I was just prepared to go tomorrow Um, I really think it'll take three minutes, but um, I have submitted to each of you a draft of A final draft hopefully of the fy 2022 annual report from the commission So today we're just looking for um Your approval to finalize that report and release it officially Did everybody get a chance to make any comments if you haven't already sent me them Looks great crystal. Excellent. Excellent. Excellent job Thank you Good to hear anything any edits that Anyone wants to make My name Are you leading in okay commissioner hill anyone? Look, I'm good. Excellent job. Very well done And I have no further edits Thank you for that sounded ominous. Mr. Skinner was my final Like I'm ready to move madam chair. Thank you so much and and to everyone who made a contribution to help. Thank you Thank you I move that in accordance with 205 cmr. No, sorry Afterwards I move that mission approved the fy 22 annual report has included in the commissioner's packet and discussed here today and authorized its release Second Any further discussion Excellent job kristo. Thank you for hanging in here today I I'm a show Brian. Hi Mr. Hill Hi Mr. Skinner. Hi Mr. Maynard. Hi And I vote yes 5-0 excellent job on To care of some good business there I think I have a motion to adjourn. I don't think it's second second Thank you any further discussion or anything else I missed And I I thank everyone for their Tolerating my little disruption. It was well worth it. Um, so mr. Brian. Hi Commissioner hill. Hi Mr. Skinner. Hi Mr. Maynard. Hi And I vote yes 5-0. Thank you. And thank you Karen. Thank you kristo. Thank you to the entire team iab. Thank you