My name is Sarah Brazoskis and I'm the Storyboot School Coordinator for the Manitoba-Muqlaks Storyboot School. The Storyboot School is a national charitable organization with a focus on teaching the traditional art of Muqlaks and Muqlaks in making. So our program, it actually started in 2013 by the founder of Manitoba-Muqlaks, Sean McCormick, and it was his way of giving back for these thousands of year old designs, the Muqlaks and Muqlaks in that specific design of our ancestors. That was his way of giving back to our ancestors thinking what would they want to see happen and most importantly I think it's that sharing and that intergenerational sharing of knowledge and kind of our history. You know part of our focus in teaching this this program, the Muqlaks and Muqlaks in making is we're really hoping to see this kind of spark the next generation of great indigenous artists and we very intentionally choose not to call Muqlaks and Muqlaks in making a craft or crafters because it kind of has this connotation that it's something anyone can do at home with say popsicle sticks or something like that. So it really is an art form and we really want to bring it into the forefront as something that is you know a fine art and something that you you pay good money for and that is really highly regarded in our not only indigenous culture but you know within our country. So some of the ways that we measure our success are you know an annual and quarterly review of grad surveys and student surveys just you know kind of assessing how they how they experienced the program and what maybe they would like to see done differently in the future. We also review our KPIs and metrics and just like to see you know how we've grown. So we're really happy to say that we were able to pay our instructors $50,000 last year and this is something that kind of grows with each year as we're able to expand our programming and our reach. So we've also seen over 2,000 students graduate the storyboot school so which is really really amazing something that we're really proud of just knowing that you know each of these students have not only gone home with their own pair of Muqlaks or Muqlaks but they have that knowledge now to pass those those teachings along to their their future children or their siblings or yeah something something that you know we really hold dear. So our target age range is indigenous youth particularly so I think typically that's about anywhere from you know 12 up to 21 but we found was there was a lot of interest between 21 and 30 years old so what we were what we decided to do was kind of extend our kind of our definition of indigenous youth up to 30 years old. So our focus is indigenous youth and we offer free programming for anyone who falls within that range but actually within the last year we also opened up our programming to include general admissions so you know non-indigenous participants non-youth participants but we always reserve half of our seats for indigenous youth and because that is still our primary target and our goal is to to reach these youth and kind of help form and spark that that creativity. One of the the benefits of you know introducing the general programming is obviously that that cross-cultural sharing and you know understanding when you have everyone sitting together in a room your hands are busy you're kind of chatting about your day and you know a lot of discussion just naturally happens and then obviously it's it's also that economic generator for our indigenous instructors as well so we're still reaching the same amount if not more of indigenous youth with our programming but we're also able to double the amount of classes that we we hold which increases that increases the amount of teaching opportunities for our instructors. We do our best to have youth attend with you know parents caregivers in some cases siblings cousins oftentimes even if our classes is fully booked well we'll make space for someone who is a family member because we love to see that that sharing with with people who have those you know those familial ties. I think we've really seen firsthand the the impact of our efforts in you know a lot of the the faces that are just filled with pride and you know just absolutely beaming not not having not realizing that they were able to actually you know from start to finish create something that they're able to wear and you know is is so closely connected to our roots and our our history as as indigenous people. The other the other piece is that our programming has grown substantially within the last six years where we are now we're a national program we hold classes throughout the year here in Winnipeg at the Manitoba-Makalaks headquarters as well as the year round at the Badashu Museum in Toronto. We also hold pop-up classes nationally with different within different universities cultural centers and and directly on First Nations so we've actually been able to visit several First Nations here in Manitoba and with the hopes of you know continually continuing to expand that just across Canada. In our programming with with Makalak and Makasin making something that I've learned and that I've seen firsthand is it's really not just the construction or making of a Makalak or Makasin. The programming really does teach a sense of pride and you know it also kind of ignites this creative spark and this artistic side out of a lot of pulls that out of a lot of our participants and with the youth especially I think it's it really is you know that there's that really big really big sense of achievement so Makalak and Makasin making is something that's it's highly intricate and a lot of hard work and time and energy goes into each stitch and each bead you know anywhere from 20 hours probably at a minimum up to you know 50 hours will go into your first pair of Makalaks so that's something a lot of a lot of youth don't realize when they sign up for the program. We see a lot of frustrations voiced and expressed throughout the process but what what comes at the end of it is just this amazing sense of accomplishment and pride and you know not only in their in themselves but in in their culture and this appreciation for their history and yeah with with each stitch it really does kind of connect you to your ancestors and you know you can think about the fact that they were doing this thousands of years ago and it's kind of a tangible connection to that that history. Through the school a lot of friendships form and you know even our instructors as well as myself have kind of kept in touch with a lot of our participants and a lot of them still continue to sew and make Makalaks and Makasins and we see them actually turning them that into a micro business and and selling their work and you know getting better and better and you know using those those simple those simple steps that we teach in the beginning kind of the the basics of sewing the basics of sewing the basics of beating and and designing a Makalak and them applying those skills and and learning more and kind of continuing that journey on their own. We've seen participants actually teach their their younger children how to how to start making their own pairs of Makalaks and Makasins which is really amazing because that's you know really our our goal is that continuity and obviously we're here to teach these classes because that continuity is something that that's been broken you know thanks to the effects of residential schools so we're here to kind of insert ourselves and and teach teach the the the steps of Makalak and Makasin making teach this art but then the hope is that the the knowledge will continue long after we've gone and that you know that that continues being passed on for future generations. I think indigenous education is really just the sharing of that indigenous knowledge passing it forward to future generations and I think a really important aspect of that at least for us in the storyboot school is that that that knowledge is is actually shared from directly from a First Nations person or an indigenous person that is you know whether it's an artist or elder but it's kind of passing it forward just you know generationally. Where we where we hope to see the storyboot school in the future is as part of part of a curriculum so in the school systems you know Makalak and Makasin making becoming something that is almost commonplace and something that that youth will be learning. We also we also hope to develop a a digital archive so an online curriculum that's easily accessible and that anyone can can learn from home you know how to make their own pair of Makalaks or Makasins learn a little bit about the history and hear stories from different artists and elders about their experiences and kind of the the meaning behind each each stitch or each particular design or the the style of of work that they create. We would also love to visit different different First Nations communities across Canada to kind of develop develop that curriculum so that we have you know a specific design that's unique to you know the Ojibwe people or the Kree people, Denay and so forth. I think our our vision I think that we would like to to see indigenous education become something that's a lot more commonplace and you know is a bigger part of the the school curriculums in general. So one of our visions for the future as well is to include or have our our education tied in with with land-based knowledge and you know not simply handing all of our students the leather that they use to make their Makalaks and Makasins but you know starting from the very beginning so with hunting of the the animal and the actual hide tanning having that become part of our curriculum as well so they're learning those skills that from start to finish create the the footwear the Makalaks and Makasins and it's not something that you just go and purchase from a store necessarily but we're also teaching those skills those you know very real skills that help sustain our ancestors for thousands of years. So I think I think the resources that our program would benefit from are the the knowledge the stories that are shared with us from different indigenous artists and elders you know representing a number of different nations so we would like to sit down with you know people that are of you know Métis, Ojibwe, Cree, Dene, Descent and many others and learn from them what their construction techniques for Makalaks and Makasins are. The history behind that the stories that that come with it and record and and take down all of this information and develop it into our curriculum for future classes so that they're specific to different nations.


Aaron will be active tonight. He's, we will not use him as a hitter yet. So it's just defense base running if an opportunity presents itself just to kind of, you know, help kind of finish off his rehab a little bit. And if we can speed up the process a little bit, we feel like, you know, with the roster expansion makes some sense to have them available to, if there's a spot where we can get them in to run the bases or play some defense. He's certainly ready to do that. He'll continue hitting this weekend and he continues to do well. So we're getting excited about where he's at. Excuse me, Meredith. I know he was out on the field throwing in Minnesota a little bit. That risk doesn't bother him at all when he's throwing global. No, no, he's doing great and he'll be hitting in group two today and we'll continue to ramp up from a hitting standpoint this weekend. We've got a plan in place over the next few days that will activate as we get closer to and, you know, he's getting real close to being an option for us. In your mind, how long until he is an option? I don't want to speculate too much but we're probably a couple of days away from making a decision about exactly what we're gonna do as far as trying to get him some simulated at bats and whatnot and as we get closer to that and as that becomes definitive, we'll let you know. Tyler in the middle. Tyler, can you just hang on for the mic? Thanks.    And I just told him tonight, I'm excited that he's gonna have to have a jersey on and spikes on and on the bench and hopefully he can impact us a little bit more even. Who else? Anyone else? Sweetie? Aaron, what more are you looking to see from him and BP? What else does he have to show you? Right now, I think it's just building up that stamina and building up the amount of reps he's able to do because I mean, if anyone's watched him take BP, it's pretty electric right now. It's coming off like Aaron Judge. And so really it's about just, you know, he hasn't been, it's been a couple months almost and he hasn't swung the bat. So getting those repeated reps where he's able to build up the volume with which he's able to do it, then we'll get him on a, you know, he'll probably see some stuff off of the velocity machine and start to really see some velocity and then we'll get some pictures to be able to throw to him and then we go. Okay, the journey back is on. Here you see Judge doing some work in the cage. On a recent edition of BP TV, we noted that statistically the Yankees offense has done a good job weathering his absence as there hasn't been much of a change in their average runs per game or their rate of home runs per nine innings between the games they played without Judge and their performance in the month plus just before he was lost to injury. But if he can get back to the point where he is hitting in the lineup again, his presence should be a difference maker.


Hi, I'm Camille from 6th sister stuff and today I've got a quick tip for you about how to know what size rug to get for your dining room table The key is to find a rug big enough so that when you slide your chairs out They're not sliding on and off the rug and I can show you how to do that for easy steps Step one sit at the table and push your chair back like you're getting up Step two use tape to mark the back legs of the chair when pushed out from the table Step three do this on all four sides of the table. Just one chair per side will work perfectly Step four use a measuring tape to check the distance and this will give you the baseline for the smallest rug size that you need But you can always go bigger And here's one last tip. I have kids and I was worried about putting a rug underneath our kitchen table I highly recommend using an indoor outdoor rug just like this one They are meant to handle the elements which makes cleaning up a breeze plus they come in so many fun prints and patterns This rug table and the chairs can be found at home decorators collection You can find all the items they carry at home decorators.com


Cowboy quarterback and Hall of Famer and our own a crew analyst Troy Hakeman is calling that game along with Joe Buck Thanks for joining us Troy You expect you bet You expect the Cowboys all from the Troy right back here It's all about timing expect Yeah, our timing's a little off right now I would expect Dallas to bounce back this week heard I think if you look at what they've been able to do here at home, you know They're average in 24 points a game and they're 7-0 when they score 20 points in a ball game And that may be required against this Tampa Bay offense that's obviously capable of scoring a lot of points themselves But the Cowboys have had problems scoring in the red zone. They've had too many negative plays They've had too many sacks too many penalties and quite frankly here in the last few weeks too many turnovers And that's gonna that's gonna have to be corrected not only today, but also going forward, you know once they get into the postseason Who postseason that's interesting guy Obviously, they're gonna wrap up the NFC East Troy But I I for the like of me was startled when the other day Zika Leila the running back said well Listen to the Colts is it was a wake-up call. It was good for us And I got to thinking about that quote and I said you got three games remaining in the season And you need to lose to be to be awoken to the fact that you need to win these games You are on a roll playing great offense or better offense and you were getting the ball to Mario Cooper What the heck happened to him and in the Indianapolis? He was a no-show and then to make that comment about we need to lose to wake-up call Super Bowl teams don't need a wake-up call They've already awoken and they're excited about finishing out the season and winning into the playoffs They won't have to worry about a wake-up call as much as Tampa turns the ball over They're gonna have cowboys gonna have plenty of opportunities, you know But I look at the cowboys though right now and as much as I like Press Scott, you know at times he is inconsistent as far as his accuracy And I want to ask Troy this you know try it is accuracy. Is it something that you can you know get better with? Repetition or is it just something you either have it or you don't because I know you were one of the most accurate Passes around and he didn't have the check-downs Terry that all these quarterbacks that Can you improve accuracy? Well, Jimmy, I you know I believe you either have it or you don't I do think that you can do some things within your footwork In order to improve your accuracy, but we see a lot of guys Aaron Rodgers Brett Farve over the years You know guys who are off-balance and they're still able to put the ball where they want to I think as it relates to Dak Prescott in addition He's always gonna have some issues relatively speaking with accuracy But the biggest thing that I see with him right now is there's not a lot of Anticipation in terms of getting the ball out and if you get the ball out sooner Then you can be a little bit more inaccurate with some of those throws because the ball is going to be on the receivers a little bit Sooner and they can make those adjustments So I think this is still a bit of a work in progress for him But you know we'll see how he's able to finish up this season and they're gonna need him to play his best football You know here going forward for sure I want to agree with Troy on that quickly and just add that you'd a great quarterback doesn't miss players that are wide open We've seen far too many players that are wide open and Prescott misses them a lot of times Take a lot less air out of the ball and drill it to at least make the completion. Yeah, all right. Thanks a lot Troy Have a great call today


Hi, my name is Sam and I'm an athletic trainer here at the WellSport program. And my name is Dave. I'm a physical therapist here. I work with the WellSport program as well. Today we're going to look at some basic exercises that you may be given after your appointment with WellSport. Again, it's important to remember that these are basic exercises. Nothing should be painful if your symptoms don't improve or begin to worsen, it's important to call your medical provider right away.


So, excuse me if I miss something, I mean I don't remember anyone mentioning this, nor have I seen anybody else mention it, and I've looked on Twitter, but apparently people, we can now farm 6 different nightfalls on that grandmaster mould, and we have 10 weeks to do this, like what? And it gets even better, but yeah guys, the usual, if this video helps you out or you learn anything from it, if you would take a second to smash that like button it would be much appreciated. So this video will be a super quick one, and it's just to let you guys know you can now select and pick between 6 grandmaster nightfalls, now the reason this is now here I believe it gives you or everybody else a chance in getting the conqueror title before Beyond the Night, so we have 10 weeks to farm these, and the best thing about this is people, arguably the best nightfall to farm is selectable, yes the lake of shadows is here, the lake of shadows is by far the fastest nightfall you can complete, and in team 3, if you know what you are doing you could possibly get this done in 15-20 minutes, and as you know the grandmaster rewards exotic gear which are common drops, and more importantly ascendant shards, these are common too as you know, and these are very important in masterworking that gear, and well let's face it, besides the solstice of uselessness, there isn't much else to do. Now in terms of farming this and what to use, warlock, releradians, titan, baubles, hunter, tevahs, lots of invisibility, high stat armor, a lot of resilience, high power levels, I mean I don't need to explain this to you guys, I think you know how it works, I mean I was going to upload a video on this and me completing it later around when my powers get online, but I honestly don't think that's needed, I just wanted to make a quick video showcasing this was actually here for you guys who do not know, but here in a decent team you can earn quite a few materials over the next 10 weeks, so get to work people and get those PvE skates on, and on that note we have come to the end, if you guys enjoyed the video leave a like, it really helps out, if you're new around to see more D2 be sure to subscribe and if you never want to miss a video out below you can turn on notifications on by hitting that bell button, but guys thanks as always for stopping by, hopefully you enjoyed the video and hopefully I will see you on that next one


Today we're going to be talking about Proto Personas. A Proto Persona is a fictional character that represents a user group for your product or service and the objective is to gain a deeper understanding of the users or customers that you're building for. Typically made up of behaviors, pain points, needs and goals, tools and devices, demographics. All that information about a Proto Persona is actually based on the team's assumption and their experience and knowledge of the customer or user base. And why would you choose this over a real Persona? As I mentioned before, Proto Personas are based on assumptions and existing knowledge. Therefore, you don't have to do quite as much user research and can really quickly execute on your first initial concept of the product or feature. It's a really good way to start to get group alignment. And finally, it's a good way to build empathy for the problem you're trying to solve. So you have a more user centric approach to your design process. So when should you actually think about creating a Proto Persona? When user documentation is messy and organized and really hard to decipher, you have an unclear picture of your target audience. Discussions about the user are very vague and nonspecific. When the team needs a more human-centered approach and of course when the stakeholders have lack of agreement and alignment to what the customers really want. So now that you know more about Proto Personas, let's figure out what we need to actually run this place. First, you need about three to five people, about 60 minutes of prep time and about 90 minutes to actually run the workshop. So who do you need to run this place? You need a combination and diverse cross-section of skills. So anybody that's close to the customer, it could be customer service, sales, marketing and even user researchers. You definitely need your decision-making in the room and a designated facilitator.  However, it only scratches the surface of user research and really should not replace a proper persona study. It's critical to validate the Proto Personas that you've done on an ongoing basis. Okay, so I hope that was helpful. If you want to read more about Proto Personas and actually how to do it, please check out the link below. There are tips, templates and a step-by-step guide into running this persona play. And lastly, if you really like the template, please let me know so I can make more. So how do you actually build a Proto Persona and what goes into it? Cool. Peace out.


We're back. This is Dave Vellante with Charlie Senate. And we're live at the MIT Media Lab. We're talking about cybersecurity today. There's great conference going on, an event really, workshop, if you will. Talking about the gap in governance and how international relations hasn't been able to keep pace with the developments in cyberspace. Herb Lin is here. He is chief scientist for computer science and telecommunications board at the National Research Council and National Academies. Herb, welcome to the Cube. Thanks for coming on. Glad to be here. So tell us a little bit about your role and then we'll get into some of the things that we're talking about off camera. My role at the academies? Yes, please. I've been there for more than 20 years. I write and do research and manage projects on information technology and public policy. In recent years, I've done a lot of stuff in cybersecurity, various dimensions of cybersecurity. For example, the role of offensive operations in cyberspace, what cyber deterrence might mean, how you might prevent somebody from, dissuade somebody from attacking you in cyberspace. A lot of research on what it would take to create a more secure cyberspace. So you said you were following security more recently. Like how recently? How long have you been digging deep into security? Within the last decade. So what have you seen as the big changes in the last decade? Let's see, last decade, that takes us to approximately 2004. Probably the biggest change, of course, is the emphasis on security in the wake of 9-11, that lots of people are concerned about what the bad guys can do to us in every way. And cyberspace is one of them. There are a lot of people who are concerned, for example, about the ability of terrorists and other bad people to do things to the critical infrastructure of the United States. For example, they worry about being able to take down the electric grid. They worry about being able to take down the financial system, water and gas, those sorts of things. That's what the concerns are. So normally, when you think of security, you think of reactive, you think of defensive, you're going on the offensive. But you said to me off camera, well, they're related. What do you mean by that?  You can try to block his punches. You can also punch back. And one of the things that cybersecurity has traditionally worried about is how to block. And mostly, the research effort has been on how to block punches. Relatively little research on how to punch, how to attack in cyberspace. For a variety of reasons, there have been taboos about doing that, some of them not for good reason. But there have been these taboos about doing efficiently recognized research in that. But it is now a matter of public record that the United States is developing offensive capabilities in cyberspace to take the battle to the bad guys. Take the battle doesn't mean destroying something necessarily. It could mean spying on them or something like that. But in some cases, it could mean destroying some of his computers, some of his infrastructure, some of his military systems, and so on. At least those are within the range of possibility, of possibility, what the United States might be willing to do under some circumstances should circumstances call for it. So you're right, it was perceived as taboo because it was seen as evil or unethical. Was it solely 9-11 that flipped that switch or were there technological advances? No, I don't think so. The fact that you can punch in cyberspace has been around for a long time. That is, there have been viruses since the early 90s. And there was an internet incident in the late 80s that showed some of the potential for taking the offense. Now, in the 1988 incident was an accident. The person who let loose a worm onto the internet and sort of brought it to its knees pretty quickly was just an accident. He didn't mean to do that, but he did have this bad effect. So there's always been malware on the internet. What's new, I think, in recent years, I mean since 1988 is that there's become an increasing realization that governments too could use these tools to create mischief in cyberspace and to do damage in cyberspace in ways that they hadn't been able to do it before, before cyberspace. So handicap the horses on the track. Who's the best at this? Obviously the United States is really good at it, right? China's got it. The United States is widely regarded as having among the best skills in this. China is regarded as having some of the best skills. Russia also. Then after that you can get into arguments about, well, how good is Iran? How good is Israel on this? Other interesting questions are, if you think about organized crime, what are the capabilities of transnational criminal syndicates that may have capabilities to do bad things in cyberspace? And that's not very well understood either, but we do know that they are, I mean if the Colombian drug cartel can have submarines and so on, who knows what their capabilities are in cyberspace? I think the answer is we don't know. Could I ask you a question about, so if there's a sort of global rules of engagement that's being developed, much like a military protocol and an offensive is permissible under certain criteria, can you lay out the land for us in terms of what that looks like from a corporate side, from a private individual side? In other words, if you have a company that decides it's gonna go out and land a punch and it's gonna be offensive, wouldn't you then get into a sort of a fist fight in the streets and vigilanteism? And then where does that end up? Yes, that is, what you're asking is a very deep and important question. And I think that nobody knows the answer to that. So here's the argument, you said it in a very telescope way, let me expand what you said, I think. If you say that you can punch back to defend yourself in cyberspace, conduct offensive operations to protect yourself. Well, does that mean that the private sector, a company has the right to do that? Well, right now the answer is no, at least under US law. Because they'd be committing a crime just to the other guys. That's right, that's right. Two lungs don't make a right as we say in parenting. That's correct, that's correct. But now the answer is no, you can't do it. Should policy be changed? That's a very interesting question. It has many policy implications. So for example, if you're going to go after the oath, what kind of punch are you gonna throw at him? Are you allowed to go and destroy his servers? Are you allowed to see his data and erase it that he took from you? Are you allowed to implant a beacon there that sends you an email saying here's where I am? Right. I've listed those in order of most severe to least severe. And so what are you allowed to do? What confidence do you need to do that? If you're gonna actually destroy somebody's hard disk or in fact causes computer to catch fire or something like that, how confident are you that that's really the bad guy? How do you know? Right. It sounds like a right to self-defense issue just like you in any court of law with substantive threat there in order for you to retaliate. But right now the answer is no, that's illegal. So now here's another question for you. Why would you imagine wanting to do this? Well, if you're a private corporation acting in cyberspace right now and being under attack in cyberspace right now, what happens is that you have two choices. You can put up the shields, shields up. Or go lights out on the guys at KMA. No, what you have is a choice. The legal choice is you either call the cops or you put shields up. What you can't do is you can't punch back. Now, but the ability of law enforcement to help you out is very limited. They've got lots, they've got lots and lots of requests. They've got lots and lots of requests and very few people, right? And so maybe the private sector should be in power like we have Brinks Guard. What do you think? Do you think the private sector should be in power? Hold on a second. And then there's the question. You keep asking me the hard question. We're going to turn it back on you. I'm sorry, I don't have the answers to here, okay? I know that these are questions that we're going to have to resolve as a nation. But do you put this under government regulation? Do you certify the equivalent of the Brinks Guards who are firing back in cyberspace? Right. And once you put them under regulation, does that imply that the government is doing it? That's a very interesting question. I don't know the answer to that. So in trying to figure that out, there's been much discussion here today of a sense of urgency around the need for better governance. There's been even some statements from the president of ICANN saying, hey, this is not sustainable, the current model of governance. Do you agree with that? And is this, these parameters of trying to define what is retaliatory strikes that are legal and not, that terrain, is that all to be reviewed by this new model of governance? I think those questions are all open for debate. And I don't know where they're going to come out. What he was saying was that what's not sustainable is the control of the US government over the detailed operations of ICANN when it comes to certain issues. And do you agree with that assessment that it's not sustainable? That's outside of, I haven't studied that, so the answer is I don't know. As a political analyst following, my opinion here is just as good as anybody else's here. I see that as, I think he's probably right. That is my guess. In the long run, that probably isn't sustainable because the rest of the world isn't gonna trust us. That's my guess. But I could be wrong about that. And as an American citizen, I hope I'm wrong about that. But I don't know. So cooperation today doesn't have a lot of options other than, like you say, going to some ineffective policing mechanism or break the law. But the question is, how illegal is it? In other words... Well, the finders... If you're gonna retaliate against China, well, maybe that's something we don't want to do. Well, that's right. Punch back against a smaller adversary. Criminal ramification. Right, that's an interesting question. And I think nobody knows the answer to how... Because all of this is so taboo at this point, nobody knows.  So I think that this is all to be resolved. I mean, maybe the right answer in the end is suppress it all, that the private sector should not have that the regime is, or strengthen it. That the private sector should not have the right to self-defense. Maybe that's the right answer. But what I know is that we haven't had that debate. We talk a lot about in the Cube about whether it's the industrial internet, internet of things. There's a lot of headwinds to making that happen. But you can see the day where you've got turbines connected and jets providing information. The entire internet's gonna be connected. And again, we've studied this extensively. And engineers are somewhat averse to having intelligence placed and connections placed inside of their devices. But it seems to be coming. When you think about the impact on offensive, cyberspace as an offensive weapon, it's orders of magnitude. Potential. That's right, that's right. Have you studied the impact? Well, yes, you think about that. Yes, you think about that. And it's really scary. So we're gonna have a smart grid of electricity. And the smart grid is supposed to control the amount of electricity used so that it lets you turn on your air conditioner and your freezer and so on at the right time is when it's cheap to do that. How nice.  While you're on vacation. That's right. I mean, those kinds of questions. What happens when you have a guy on an airplane who accesses the onboard avionics of the airplane because the entertainment's network is connected to the onboard avionics and starts hacking the control systems using his entertainment console? I don't know what happens in that situation. Or for watchers of Homeland, what happens when a terrorist hacks into the vice president's pacemaker? I see that at the side. Cheney is on record as saying I didn't want the wireless capability to cause him exactly that. That's right. Okay, so what are you working on now? What are you tracking? What's exciting you? What we're trying to do at the academy right now is trying to stimulate a kind of dialogue between technical experts between the United States and China on cyber security issues. That is the hope here is that based on discussion of technical issues, we can find some common ground with them. Now we'll never reach common ground with them on whether it's okay to steal intellectual property or not. That's not the issue there. That's not the kind of problem that I think we can resolve. But we can, for example, we can establish a common vocabulary. That would be a very interesting thing to be able to do. And we'd like to be able to do that. Where do you think you, are there places that you know of where you won't be able to find common ground technically?  There's philosophical, though, I want this protocol or that protocol because it's smarter, better, faster, whatever. Do you know even what you don't know yet in terms of? Well, there are many fundamental differences between the US and China, for example. I mean, we have a, we as a nation, and I support this because I'm an American. We're, you know, I support the First Amendment. This is a very good thing to have and so on. But I also have to recognize that the Chinese aren't as thrilled with the First Amendment sorts of things. But specifically technically, are there points of disagreement that just don't look like they're reconcilable without some kind of compromise on either side? But I'd say specifically technical debates. I don't know the answer, I can't answer that. I don't know the answer to that. Okay, you don't have visibility on that at this point. Not at this point. Do you expect those types of things to arise? Or do you feel like that the technologists can sort of get through that? I mean, again, I'm drawing on standards bodies, IEEE or name one, right? That they can't agree on a standard or it takes forever to agree on one. Do you expect similar types of problems to occur? I wouldn't be surprised if they occur, but I can't tell you what they are at this time. Yeah, I understood. Good, all right. Well listen, really appreciate you coming on theCUBE and good luck with your presentation today. Okay, thanks, okay, thanks. All right, so right there everybody, we'll be right back with our next guest. We're live, this is theCUBE, we're at Cambridge Mass, we'll be right back.


Yeah, so I'll start anyways. I hope that I'll get it awake with the stop. I'm Ratnadeep Devnak. I'm also known as Artian Pro. Sorry, at Zapier. I contribute to open source and mentor new people, get started with open source contributions. I'm also a Bhakti Yoga practitioner. And I work remotely from a place called Mayapur, which is 130 kilometers from Kolkata in West Bengal, India, where the world's biggest temple is coming up. So to start with, I'd like to set some context for the stock so that you can relate to the stock better. As I said, I work at Zapier. So what do we do at Zapier? At Zapier, we help you connect your apps and automate workflows. You can connect apps that you use every day and do some cool stuff. For example, you can write a zap or a workflow, which will check your inbox for new messages arriving. And if it has an attachment, you can upload the attachment to Dropbox. And you can send that Dropbox link to Slack. You can automate similar other cool workflows in your life. And you can do that using our cool web editor without writing a single line of code. So what is Zapier under the hood? We are a Python Django workshop. We run more than 10 million tasks a day to automate all the workflows for you. We have around, like, 250 application servers that talk to our databases. And we need to scale up to get into the new users joining our platform. So we won't win any awards for our application architecture. It's plain vanilla. We have got multiple application servers running multiple workers. We have got RDS. For database, we use RDS MySQL. It has a single master and multiple replica setup. The app servers connect to primary for read write, and they connect to multiple replicas for intensive reads. However, this model has got some shortcomings. Our apps end up making too many database connections to the DB. And we tried Django connection pooling. But it was not enough. It doesn't scale beyond a single process. What to talk about multiple servers? Even with Django pooling, we ended up in situations where our applications would make too many connections to the database. And MySQL really doesn't like a lot of connections to the DB.  Our DB would start stalling down, and then things go spiraling down. And this caused downtimes at peak hours, which is not that great. So far, we had used duck typing to get around this problem. Whenever we hit some limits to scale up RDS MySQL instances, one approach is adding more replicas to handle more reads. But for us, the master is also bottleneck, and we have only a single master. If we cannot solve this by adding replicas, yeah, we hit a button in AWS, scale up RDS, pay some additional dollars, and get away for some time. But not forever. This has limitations. It cannot go forever. We are limited by the hardware that is available in a particular AZ of AWS. This also has increased cost. Yeah, it's cost prohibitive. So what now? We started with a vision that we want to hit 10x scale without 10x cost. We considered AWS Aurora, but it is still limited by a single master. And it involves some re-architecture, and we do not want to do that at that point of time. So what would be an ideal solution for us? So we started looking for a global database proxy with a good and efficient connection pool, something that works across multiple servers, not just a single process. So we started looking at the ecosystem for available solutions. First, we hit some proxies, like Nginx, HAProxy. But soon, we realized that they are just proxies. They are not database-aware, and they do not have connection pooling, what you need it. Then we hit MariaDB Max Scale. It is database-aware, which is good news for us. It has connection pooling, something we want. However, it is not aware of transactions, which is kind of a letdown, because we need support for transactions. And it doesn't support query-based startling. So what do I mean by query-based routing? So you can define rules like that, like route all the read traffics, for example, slate queries to your replicas, and route all the write queries to the primary database. You cannot do that with MariaDB Max Scale. And above that, it is proprietary. And at Zapier, we prefer using open-source applications as long as possible. Then we hit upon proxy SQL. It is database-aware, like its earlier counterpart. It supports connection pooling. It is transaction-aware, so it understands database transactions, good news for us. It also supports query-based routing. And on top of that, it's open-source, win-win for us. So our choice, the title on the top, is obviously proxy SQL, because it is featureful. It is transaction-aware. It supports connection pooling. It's open-source, I told you that before. On top of that, it has got an awesome community. So proxy SQL is not developed by a single person or a single organization. There are collaborators from various organizations. They have an active GitHub issue list, pull requests, and active mailing list. You get support from all these channels. And also on top of that, there is a community around it, like various DB consulting firms like Percona, several lines. They support proxy SQL. And they have generated awesome content from proxy SQL with benchmarks, good blogs, how to set up proxy SQL efficiently. So we feel that with this awesome community, we are at good hand with proxy SQL. So how does proxy SQL really work? So proxy SQL sits between your application servers and your database. So your application servers, as notorious as they are, they can spawn around thousands of connections to proxy SQL. And proxy SQL just maintains a few hundred connections to the database and does intelligent multiplexing so that it can deliver the throughput with having less load on the database. So how do you get started with proxy SQL? You install proxy SQL using your distribution package manager. It's available in most distributions.  I'll go through the important parts here. So you can configure your backend database servers using MySQL servers. You can configure users that proxy SQL will use to connect to your backend databases and the user that the applications will use to connect to proxy SQL. And then you can define some query rules. You can define code-based query rule which is the easiest to get started but you can also write user-based query rule. You can also write query-based query rule. So you can have a lot of options here. And then you start proxy SQL.  That means when you have to update configuration for proxy SQL, for example, configure new backend DBs for it, you don't have any downtime. So if you search about proxy SQL on the internet, you'll end up finding a lot of articles about good benchmark, good numbers, generated by the community on it. But before taking things to production, we wanted to try things for ourselves. So we used a tool called sysbench to run benchmarks on proxy SQL. So sysbench is a cool tool which can throw like thousands of concurrent connections to your database and put it under load and generate some metrics out of that. So we ran the tests in multiple modes. We ran it in read-only mode. We ran it in read-write mode across two scenarios. Like one time there was the database which was a small RDS instance. Directly, we hit the database directly. And in other case, we hit the database via proxy SQL. And then we recorded the metrics. These are the metrics for record. I'll analyze it further here. So if we compare the above metrics, so we see that in case of latency, proxy SQL has around like 10% higher latency than direct access to database. That is the expertise, another layer on top of the database. In terms of QPS, transactional, proxy SQL is again having 10% less performance than direct access to database. In case of other queries, the QPS is again around like 10% less than direct access to database. But the interesting thing to note here is that while in case of the direct access to database, we had 100 concurrent connections hitting the database. In case of proxy SQL, we had 100 concurrent connections to hitting proxy SQL from applications. But proxy SQL maintained very less number of connections to the database. In case of read write, we had one 10th of the connection. Proxy SQL just had 10 connections for handling 100 connections. And in case of read write, it had 20 connections, one fit of the total number of connections that came from the application. So we see that proxy SQL is able to deliver almost like 90% of the performance with maintaining one 10th or one fifth of the connections to the database, which is a great number. It gives you enough room to scale on top of your current database setup, on top of single master. Proxy SQL has got a number of advantages. Or there's something else. Let's see. How much can it multiplex? The upstream claims that proxy SQL it quick in a particular way can scale like multiplex indefinitely. But there are some goths to that. You don't want higher latency on connection initializations. So based on our benchmarks and test in our staging and production, for us 10x, we had like easily 10x gains for read queries and 5x gains for write queries. These are like pretty good numbers for us. Proxy SQL claims and boasts about zero downtime configuration update. That means that you can add backend databases or replace backend databases without restarting your app and without restarting Proxy SQL. That means there will be no downtime. But it really sounds too good to be true. So, as skeptics we are like we decided to write our own tests and assert this. We had to write this because the docs did not say that it has zero downtime live update but it did not have examples or explanations on that's where kind of like in doubt. So we wrote our own tests. So in this link, you can find the test that we wrote to assert this and what we found was really cool. So whenever you replace an existing backend server from Proxy SQL and replace it with a new one, so Proxy SQL lets the in-flight transactions complete rather than killing them right away. And for the newer transactions that arrive, it starts routing the transactions to the new database. So you do not end up losing any in-flight transactions during this live update. Seems good. We use Django. So we wanted to assert that whether, how well Proxy SQL plays with Django and basically the Django ORM. So what works with Django? Typical read write works well. Django performs transactions using set auto commit zero and set auto commit one blocks. It is not a typical way to do transactions. DBS don't like that. Proxy SQL did not support that earlier but then on the basis of a requirement by the community, they eventually added up adding a parameter in the config which enables us to support it, set auto commit zero and one blocks as transactions. So you can set MySQL auto commit false as transaction to true to enable identify auto commit zero as transactions. So what it does is that like it disables multiplexing during transactions so that your connection in a transaction won't end up in multiple backend database connections. And you can use port based routing to get started with like in Proxy SQL to get started with using Proxy SQL with Django without any code refactor. What doesn't work? Officially documented save point queries or nested transactions do not work with Proxy SQL. Long living connections from application do not work that well. So if you have application pooling, you might consider disabling that or like tweaking the timeouts. Sorry, the time till the database connections are alive. So at Zapier we, and I think in many organizations you will be using save points like nested transactions.  So it was very key to getting live with Proxy SQL and this was like a blocker to go to production. So it is not officially supported but we had a hypothesis that since all the transactions are wrapped, like all the save points queries are wrapped inside auto commit zero and one blocks in Django and since Proxy SQL disables multiplexing in that period, it might work. So it has just a hypothesis. So again, we started writing some tests and we found that it works in certain cases. So save point works when it is encapsulated with auto commit zero and auto commit one blocks. So that we can treat it as a transaction. And we need to turn another value. MySQL enforce auto commit on reads to crew to get this working with various isolation levels. So in our initial test, it did not, even a save point encapsulated inside auto commit, it did not work for repeatable reads, TX isolation levels, but with this value set it works from like read committed and repeatable reads quite well. And Proxy SQL needs to have as many back end connections to handle a concurrent transactions that are hitting Proxy SQL. So if you have 100 concurrent transactions hitting your Proxy SQL, you need to have 100 back end connections ready to handle that because multiplexing is disabled during that time. So if you kind of like over provision Proxy SQL bit by say 100 few more back end connections, it should work pretty well. And here is the source code upper like the Django Proxy SQL demo and test that it did. You can refer to that later. So once we are happy that we can go in production in Proxy SQL, we started planning our deployment strategy. So when it comes to deployment strategies, there are multiple ways you can deploy Proxy SQL. So you have got one approach which is application sidecar. You're not confused sidecar with the container world. However, the meaning is something similar. Centralized cluster. So a sidecar approach looks like this. You have got Proxy SQL running alongside the application on the same host. And the application talks to the local Proxy SQL server and the Proxy SQL talks, all these individual Proxy SQL talks to the database separately. It has got some advantages, some disadvantages. So since the Proxy SQL resides on the same host, this little latency between application and Proxy SQL, so hardly any network latency. So the access is fast. And the load on Proxy SQL server running on each node is less. The disadvantages of this would be like it's a pain to maintain such a setup in a traditional deployment model using EC2 Ansible Packer. However, it's quite simple to do it in the Docker world with Kubernetes, but yeah, that's how it is. Monitoring so many instances of Proxy SQL is pain. Even understanding what fail and what not is painful. Even maintaining Proxy SQL instances deployed across say 250 application servers is a painful process. So there's this second approach like Centralized Cluster where you have got a highly available Proxy SQL setup running between an application and a database. And the applications connect to this cluster and the Proxy SQL cluster talks to the database. The advantages of this approach are like it's easy to maintain, it's easy to monitor. It's a single set of few nodes that you have to monitor and maintain. However, these advantages are, now you introduce a network between your application and Proxy SQL nodes. And this has an added latency because of network. And if you put an ELB in front of that to load balanced traffic, you'll have a few milliseconds of higher latency. And it also creates like, since it's a Central cluster, it creates higher load on Proxy SQL unlike the previous approach where the load on Proxy SQL was less. Does it, is it a disadvantage? Seems like, it sounds like it. But Proxy SQL shines the brightest when it's under load. This is a benchmark generated by the Percona folks which shows that with increasing number of connection threads from the application to the database or Proxy SQL, the throughput increases to a particular point. And after that, the performance starts degrading, throughput decreases in case of databases. But usually that in case of Proxy SQL, it reaches a plateau after like 200 threads. And this is how you want your systems are scaled to behave. You do not want the performance to degrade with increasing load. And Proxy SQL maintains an average performance even after that particular threshold where as direct access to database just drops drastically. So our choice was obviously a centralized Proxy SQL cluster because it's more performant and it's easy to maintain and monitor. So no deployment is complete with the monitoring. So we also implemented monitoring for Proxy SQL. Our monitoring story uses DRDOG and this is a snapshot of the DRDOG dashboard we use for monitoring Proxy SQL. Monitoring key metrics for Proxy SQL like native traffic, the number of CPU cores it is using, the number of, the amount of memory it is using, the number of kind of client connections it is handling per node, the number of connections that are in use, the number of free connections you have in a pool. So you can know that is really to like, are you good enough? Like do you have enough connections to handle any connection traffic spike? And it shows you average latency. Yep. So Proxy SQL, how do you do monitor Proxy SQL? Proxy SQL has got a database from, where it dumps metrics, it's the stats DB. So you need to write your some custom script to scrape the metrics from that and push to your favorite monitoring tool. This is the link for the script that is used to monitor Proxy SQL. And this is below is the link of the wiki where it talks about what metrics is for what. So you can go into that and like figure out what metrics you might need. Now it comes to logging. Yeah, we also need logging for any production system. The logging story with Proxy SQL is a bit dicey. As in like, it doesn't support out of the box logging integration with frameworks like Grailog, Logstash. It does basic logging to H2D art, which is not that useful. Proxy SQL does support query logging. It's helpful in debugging, but we have disability in production anyways. But it's in binary format and you cannot mix and sort of that much. You need additional tools to make sense out of the binary query logs. However, some folks from Zendex, they are implementing a working on a full request which will enable support for JSON based query logging so that they can route it to other log aggregators. For us, we just rely on some application logs which kind of tell us about like some operational errors that we get from Proxy SQL and we have set up alerts for that so that they can act whenever there is something like that. So failure is a thing that might happen anytime anywhere so you have to be ready for failures and Proxy SQL is no exception system. It has got failures. One kind of failure that you might get is that when your Proxy SQL node dies, how does the application react to that? So you can get around that by setting up a highly available Proxy SQL cluster so that it's not a single point of failure so you can handle one node going down. And you can also set up a graceful shutdown of Proxy SQL so that the connections are not killed in flight. So Proxy SQL has enough time to complete the existing connection that is handling and then close it gracefully. Then when you start using Proxy SQL, you might get this error in the first few days that Macs connect timeout page while reaching host group. So this doesn't come didn't Proxy SQL. So MySQL is really bad at handling connection spikes. So it takes really time to create new connections. So whenever there's a connection spike in your application, say you just started Proxy SQL and enable Proxy SQL on all apps and they all start connecting to Proxy SQL. So MySQL will choke up creating connections and then Proxy SQL will start throwing this error to you. One way to get around that is that you can increase the parameter value like MySQL connect timeout server max. So your clients can wait for longer time but I do not see it as a feasible way. I do not want to have this only more than 10 seconds. So yeah, you can configure this up to a limit but not much. However, you can enable one feature called MySQL free connections percentage. What it indicates that once Proxy SQL opens the connection, how much percentage of the connections does it keep in the pool free so that it can directly handle that to the app whenever there's need. So we set that way higher value because we want our Proxy SQL to be ready for handling new connections. And you can also do one thing is that you can slowly ramp up Proxy to Proxy SQL or you can have some script that actually warms up Proxy SQL so that it has got enough connection in the pool and then brought application traffic to Proxy SQL. Then there's one common failure that you might face in Proxy SQL as well that MySQL server has gone away. That means that an application establishes a connection to the backend database and it is a long-lived connection and in between the connection dies and the application doesn't know and it still tries to do a query and then it gets this operational error that MySQL server has gone away. So what you can do is that Proxy SQL is an efficient connection pooling. So there's no need to have again applications at connection pooling. It's quite efficient to have seen that. So you can either disable connection pooling in your application or you can keep your database connections alive for a small time, say 15 seconds. For us, 15 seconds works very good for us. And you can shut down or rotate Proxy SQL more gracefully. Like you can, whenever a shutdown signal comes to Proxy SQL, rather than killing Proxy SQL, you can handle the signal. You can wait for some time so that sometime which is greater than all your, the time for each database connection sleeve and you can wait for Proxy SQL to clean up like gracefully close all the connections and then kill Proxy SQL. And then there's another error that it faced when it just went live last week in production is that like too many connections. It happens when a lot of connections come to Proxy SQL or even it would come in your MySQL case as well beyond a particular limit that you have set. So there's a parameter called max connections. If the number of client connections exceeds that or is about the same, you'll start getting this error. Solution is that simply bump up this value and it'll be good. General advice is that all the Proxy SQL works out of the box kind of but you'd like to make your refactor app to make it a bit more resilient to handle database connection and operational failure so that it recovers automatically without you needing to restart the app. So what is the end result look like? We had like five X gains in case of our write. We had 10 X gains in case of our read. And we have some cost saving as well. We just got rid of our like two out of our four AWS replicas saving on like $1,500 a month. And the load is on our master is now less giving us enough leg room to handle traffic spikes during a peak hours and peak seasons. This is a live stats pulled out from our data metrics dashboard. So you see that the latency is almost the same as before but on the right hand corner you see that the connections made to the primary DB has dropped drastically. Initially that value was like around 1.5K on average value and that has come down to around 300. So it's like one fifth and that too it has got the free like connections which are free in the pool. So it has got connections used and which has got connections free. So the real value will be much lower but we have overpropagation Proxy SQL anyways. And in case of reads, we had initially four replicas handling around over 1,000 connections each. Now that has come down to around like 400 connections in all. Again, there is the free connections that are lying idle. And you see that over all these experiments, the latency, the throughput of a database has remained almost same. So we have been able to achieve this same performance with maintain less number of connections through database. So what is in store for Proxy SQL as Zapper in future? So currently we use Django based routing because that was a simple approach to take. We did not need to refactor our code base but in the future, we'd like to try the query based routing of Proxy SQL the way DBS do it like having a sender place where you can configure how your queries are routed to your various databases. Proxy SQL also has got a cool query caching feature. It's a very efficient query caching feature, much efficient than MySQL query caching. However, it's a very simple system. It's a simple TTL based system. So that means that once the cache is set, you do not have control to invalidate the cache. That will need some refactor in our app if you want to leverage this but we want to give this a shot in the future. And we have not till now, we have not tapped into like live updating Proxy SQL config. It needs some additional tooling. So in our version one deployment we just went with kind of immutable deployments but in the upcoming future we want to implement live updates so that we don't need to restore Proxy SQL at all and keep serving traffic without any errors or times. These are the resources I used for my talk. You can this link to the Proxy SQL website. You can find the Docker image that we're using to run Proxy SQL, the benchmark source code and the test demo test Django app that is built for Proxy SQL. You can find it on GitHub. So come up for questions. Hi, you mentioned that to prevent Proxy SQL from being a single point of failure you would want to cluster it. So how do you cluster that? Oh, you can have a Proxy SQL running either in an ASG behind a load balancer or in our case actually I did not delve into the topic we were running Proxy SQL on Kubernetes. So there'll be another talk but you can have multiple Proxy SQL running put an ELB behind that then add some latency but in our experience we saw that the latency is only one to like two millisecond which was an acceptable figure for us. Other thing you can do is that you can have a DNS based load balancing as well like weighted records but with DNS there's the trade off of TTLs kicking in that you won't have live updates immediately. You'll take some time to. But then won't you lose the benefits of connection pooling because connection pooling holds a connection to a particular server. And ELB has the ability to keep connections hold connections for some time. Okay, thank you. Quick question.  Yeah. Does it actually handle failovers like Funky AD failovers problem? We have not yet delved into failovers like Proxy SQL but it can do that because with the live configuration update you just need to update, have some kind of tooling to just update the config and it will just failover gracefully. Yeah, so we have not yet delved into that so I cannot, but it is a good area we can explore. One minute. Yeah, I just remember Proxy SQL also has got some kind of health checks. So Proxy SQL can do it for you. Yeah. But we have not implemented so I was not confident enough to tell that up front. I cannot hear you. Yes, equipment services using a service a load balancer type service and with a lot of hacks around that. We are creating an ELB because ELB cannot I think work for this like non-HTB traffic. We tried it and it did not work great for us in the early stages, it might work now. So yeah. Is it possible to sort of configure two masters and then one master sort of taking the traffic and then when the failover happens automatically? We are exploring that Proxy SQL works with setups like Galera cluster as well, which are multi-master. So Proxy SQL has got capacity to like able to write rules to like send traffic to shards. But we have not explored into that so but it does some supports some features like handling shards and all. So it works in multi-master setup but we have not used that. Not probably multi-master set up. I was probably indicating similar question to what we are. Are there health checks for that, you know? If my primary master fails automatically it's diverted to the. Yeah, it has got health checks. It monitors the back ends. So it can do like whenever there is some error it can switch between the back ends. So one more follow up question, you mentioned that. Old master, I think any DB, like any back end, yeah. Yeah, so what it does is that it lets the in-flight connections complete and then only, and parallely it starts routing the new connections to the new DB but it doesn't kill the in-flight transactions. I'm not able to. Won't that lead to inconsistency? So that has to be, obviously yeah, there are various challenges. Like Proxy SQL won't know about like the inconsistency. You have to orchestrate that how you want to do the failover.  No questions? So I think I'm done. One question, so we saw the previous presentation. Where, yeah, yeah. The previous presentation on the test. Could you have used such a solution instead of what's at the. Oh, we are considering to use because first when you're like exploring solutions but last year when we started researching on this thing we're not that confident with running something stateful in Vitez but Jitain's talk like clear some doubts that we can actually run something like that in Kubernetes like a stateful application. So we just kept Vitez away but we are considering Vitez for other reasons like other things in like just for experiment, yeah. I have a question about the hardware. For example. Can you speak a bit louder? Hello? Is it audible? Yeah. I have a question about hardware and based what type of hardware we need to choose for this process? Oh, yes. Process SQL is very CPU intensive. For in our setup we are using like we have like six practical loads of pods running. They are using like two CPU cores each but it's very light on memory. This is CPU intensive but less on memory. So you need to get compute intensive. Are you enabled in your environment? Are you enabled in the query cache in ProxySQL? We have not yet enabled query cache because this is the first implementation with ProxySQL. Once you're more confident with that we'll go it step by step. But it is really efficient that we have kind of checked the function code factor on our side to do that. There's one question at the back as well. Hey. Hello? Yeah. So you said that ProxySQL will figure out whether it will pass your query and figure out whether to send to a replica or to a master. Now, how do you handle stuff like slave lag? How do you handle stuff like slave lag?  So ProxySQL will not magically route your traffic. You have to write query rules for that and it's totally up to you how you want to write the rejects that fits your, like, how you want to route it. So you can write that something like which has like select for update things goes to primary and all select queries goes to database. But in case of I think transactions it disables multiplexing altogether. So it'll just, it'll send all the queries to a particular master connection. What segregating need and write? I mean, I've been using Max, Max can segregate. I think the documentation that I read earlier at the information might be a bit outdated. So that time when you're evaluating all these services so it did not like what I read, I might be mistaken but what I read that time was that it did not have support for query rules segregation. You cannot separate, like can you write query rules to say that the route on my select queries on this table to that and insert queries to a particular table to a particular database. You can, okay, then, yeah, then, okay, I got that.