We are also live streaming right now on the HowlRound so you can kind of like say hello to everyone. As I said, I'm with The Soul Project. We are very honored to be partnering with the Latinx Playwrights Circle for tonight's event. In case you do not know, The Soul Project is a national initiative dedicated to amplifying Latinx playwrights and partnering with the leading theaters in New York and beyond. I'm so excited to have you guys here. We have four amazing excerpts for four amazing playwrights, mentored by four amazing mentors. We're going to have the excerpts and then we're going to introduce the playwrights and then we're going to go into a very wonderful conversation led by a panel of amazing artists. So this is about two years ago, Guadalisa and I have worked very hard to create open spaces for Latinx artists to submit pages and to work on our plays in an open and friendly environment. We have partnered with over 11 different theaters over the course of the two years and now currently in residency at primary stages. The new 2020 reading of these plays, which I'm very excited about, now please make sure to turn your cell phones off. While this setting is constant in moments, you should experience entrances of surreality from outside, especially the storm. Characters, Yeohannia Silva, older sister, bilingual, first-gen Uruguayan American writing for office. Mercedes Silva, younger sister, first-gen Uruguayan American bilingual musician. Mercedes is sitting on stage, alone on a fallen tree that is quite close to an entrance of a home, as if the house narrowly missed being hit by it. Perhaps the tree devised the audience from the house. Yeohannia comes in. I'm sorry I can't sing. I'll sit up for a while. Mercedes turns her back slowly, maybe walks across the tree trunk away from Yeohannia. This woman is slow, happening over years. Yeohannia watches her go. Mercedes drops out of life. Fourteen years ago, I scribbled translations of myself and the margins of my own mind. Little poems to escape, how comfortable I felt. Musica y letra mamá used to say. Vo sosua letra, merche la música. You two came here together, so you can't have one without the other. Poems are practical. Poems are a dream of a revolution that doesn't move. Page at the number arrives. It's like going back to your own country fully grown. The crystallized moment never measures up if you stay too long. I have a different dialet. Lights rise to reveal the house. An expensive home, Old Town Alexandria, Virginia. Upstage center, a kitchen. Down right, a dining room. And down left, a living room. In a staircase or nowhere. There's no real divide between the dining area and the living room, which contains shelves full of scholarly books on entertainment, law, D.C. politics, the evolution of hip-hop. I love you, Yeohannia. I love you so much. I love you so much. Mercedes is sitting on the couch, bored. Mercedes, do you think you can have a second table, please? It was good. He should be on his way back home from work. How? You think so? They have root 1 and Bayley's Crossroads. Give me one second. They have root 1 and Bayley's Crossroads.  But of course, Gabe's work is fine. That part of D.C. kind of needs to have electricity. The minion powers to squeeze up on the Virginia side. Except this part of Virginia. Everyone else been charging their phones at Starbucks for six days. The plates. I could use your help with the plates. No one's gonna care about your missing class. Okay?  It's not a feast. Okay, so what qualifies them as a feast, then? When the orderers take up three tables instead of two? I want to let them stay at home. Give them some Latin hospitality. hospitality? Yeah? Plenty of food. Latin hospitality is way easier than whatever you're doing. I'm just offering you to have what you're good at. Just grab some beers. A little asalito, some chips and salsa. What is your obsession with asals? What you're vegetarian enough? No, it's just, it's not really... It's not really sustainable. Sustainable? No! The Indians brought those cows to the river plate, right? They're not native to South America. So this constant asalo stand comparing isn't nationalist at all. Yes, exactly. Listen. You should just throw Jose and Sony down. Give them maybe a quiet room to sleep in. They just want to kick it. Not walking to Southern living magazines. I want to reunite with my high school friends. Oh, wow. High school friends? Just speakers and PDs. Why are you suddenly still against this? I'm not against it. I'm reacting as though you're reconnecting with real people. Jose and I have been hanging out. Not physically hanging out, but Jose's doing some consulting on my campaign. Video calls on organizing? You know. Right. And aren't you paying him to do all that? Of course I'm paying him. Go get the cuts here. I'm just making a point. If you're paying him, where does the hanging out come in? That's the point of this. We talked about this being good for my campaign. So well, convincing him to come on staff. I just don't want to do it the right way. Catch up first. What are you worried about?   Which means you're thinking he can give you the authentic Latino vibe. Authentic Latino? What does that mean? Yes. You want him to help people viral, get the drastic district on your side, maybe even get some national attention, but you can't be like, Jose tweeted about me. So much to the hood. That was such a good idea then. What's the problem now?  But now you're being weird. No one wants to get a repred card with nothing in the bag. Is there any health care? Pump it against your face. Pull me in so deep into your constant campaign convo. I didn't even realize I was in it this time. Yeah, but like I said, I'm not interested in being free labor. But then don't offer your opinion so much. Makes me think that you actually want to talk about it. I'm just trying to stay. The gust of wind shakes the house. The lights flicker for a moment. Now Hania looks around. And since it doesn't seem to have noticed, she finishes as quickly as possible and throws herself into a chair. Did you hear back about the apartment? I don't want you to get involved with this. I got it. Are you stressed about being here until you figure things out? No, I'm here. I know staying with us for two weeks feels like a long time, but really it's not. Is it ever optimal to be in someone else's place? A few small tables and some seating. A door to the inside. Dino is reclined on several chairs.  Suiza enters from the house. She sweeps the courtyard until she comes across Dino. Hey! Dino! I don't know. I already told you a thousand times that you need to look at the door. I can't see it. Do you want me to start charging you for your room? Suiza approaches the stereo and starts to use the phone. Suiza! Do you just want me to play the street music? To dance that... the dance of twerk? Yes, you're just going to make a copy. She opens it. Well, this is California. I see soy de California. No, I just... I have to save money where I can, so that's why I'm staying at Austin. That's okay. I will show you what we have, don't worry. I put you in a room still, I will show you. Dino, please, I will return. Suiza indiscreetly grabs a rag and disinfects and spray off the counter. She exits. Adam takes a tour around the courtyard. Dino has been in with the couch where he watches Adam from. Adam finally spots him. They lock eyes. Dino very slowly raises a hand and wiggles his fingers. Ashesious hello. Dino forces a smile to pretend to read his magazine. Adam looks around, but he keeps stealing glances at Dino. Dino does the same. When Dino steals a glance, Adam quickly digress his gaze somewhere else, and vice versa. They do this for a while. Suiza returns. Okay, come with me. Suiza notices Adam stealing another glance at Dino. Approaching my room. Dino throws the rag at Dino's face. Dino gets stuck in rushes to a mirror. He tries to wipe the hangover off his face. He tells us his hair, checks his teeth. For Nia, California.  You like to dance? You have a... Captain sprays up Suiza on a nightstand. He takes a seat on the bed and starts to write. A gentle breeze enters through the balcony. It arouses Adam. He places his hand on his crotch. A knot at the door. It was okay. Dino had a tutor growing up, and I watched a lot of people go with the Kardashians. Dino lets himself in. Yo, Suiza puts all the... I like this one because of the balcony.  Currently, I'm on the other side of the bathroom, so we're sharing. Sorry. In college, I shared a bathroom with 12 other guys. That's so sad. Sorry, are you a long-termer? What? Okay. A long-termer. Someone who stays at a hostel with, you know, like, a long-term for like months at a time. Yes, yeah. That's what I am. Yo, I work here essentially for a room. It's temporary. Yeah, no, no, I get it. I was a long-termer in Spain for a bit. I worked at a cafe. I was right close to the hostel, but sometimes the manager at the hostel would pay for me to plan events or something. I don't plan events. Yo, I welcome the guests. I clean water the plants, you know, whatever other dadeas, suizamesa, chores. So, like, living at home again?  Did you need something? Yeah. Can I use your cell phone? For why? Man, I just remembered when I needed to call my mother. You don't have your own phone? No, I was stolen. Oh, here? No, I bought that. Yo, I let an Amiga borrow it, but man, some thieves, they wanted a motorbike, so they cut her throat, and they left her in the street, and, you know, I don't know who has it. Okay. Yeah, that's fine. Your son. Dude, mommy, I just wanted to ask you how are you?    Is that what happened? No, she called us. No, I just need you to send her a message. That mother of yours.  Oh, man, they're on the computer right now. Colombia. Oh, isn't that right on the border of Venezuela? Well, go for you. Are they refugees? Wait, wait, are you? Yeah. There's a lot of Venezuelans here, but what do you do, Adam? I've been traveling for about a year and a half now. Me too. I do some freelance here and there, and I'm a writer. What are you writing? Well, I want to make some sort of travel and psychopathy for LGBTQ people. I try to go around different cities and find all the fun, gay, funny spots to work in Congress. You always travel alone? I've tried joining up with others, but they just slow me down. What brings you here? I mean, sorry. That's specific. That is so overwhelming and boring. From there I went to Bogotá, but so I came here because I heard there was a hostel in Cueca that, it takes me to Solanos, but because so many of them don't, that's why there's so many here. Now I've been working here for six months, but I get no money, so I have nothing to do, no phone, nothing to distract me when I'm working, so all my time is bored.  That was it. I mean, for sleep. What makes the first move? No one knows. What do you have in mind? The member of the New York region of the literary movement in the 1970s. Federico Garcia Orca, Spanish poet, favorite of the 19th century. Zora Neale Hurston, novelist, died in 1960. The Zora Neale Hurston slowly comes out of the darkness to stand center stage she is dressed in dirty scarlet. Just the right number of vowels and consonants. I can gather up the courage and tell me the definition of fiction. I need to do something false today. Care to give me their definition? You're both wrong. Fiction is simply a lie. Imaginary, not real. I'm not saying you can't speak the truth with a lie.   You enjoyed yourself, didn't you? That's where this story takes place.  Cat and corner is the neighborhood known as Puer. Another incredible word.  Some are white. Some are not. Some are renowned. Some are not.  No, that's not true. There are writers taken from different areas, different time periods thrown together in the same world for the purposes of telling this talk to you. You'll see these writers and think of yourself and you'll think to yourself, fail in AP English literature class in high school. I don't know who they are or what they did. It doesn't matter.  It's a lie, but it's a truthful one. Because, yes, these writers wouldn't have existed at these ages at the same time with each other. What they all have in common is that they aren't queer. So maybe it's a lie. Isn't it a truth that all of us in queerness and other share a muscle? Some place in between our heart and our groin, a tiny little muscle that throbs in a kind of sad cadence. So, baby, for a night, can we imagine that this tiny little muscle connects them all, pulling them into... from space and time and plotting them right here in the same room for us?   My name is Zora Neale Hurston. Orion. Died January 28, 1960. Died 4. Work unknown. Though my writing gained me some fame after my death, you may know me, but, most likely, you don't. The world goes crazy with lights like we're at a ball. The men dance together, bow, salsa, what have you. A beat encompasses a stage heavy on the face. This is all a passing of time. It changes to a loud contemporary salsa slash rap song. The night's reading has finished, including the critique that followed. Heavy, heavy drinking has been going on since. The chairs have been moved away. The hair bled out from behind a bookcase. Lorca and Miguel are center stage. Miguel is trying to teach Lorca how to move to the hip hop beat. It ain't working. Heavy on the ceiling, let's plan on this badly drunk, too very drunk. Move your hips. A thing. Sexy, huh? Bookcase to center stage. Kevin stays prone and lets him nail-drag it.  Lorca runs over to the kitchen and lets a rag in the sink. Miguel drops Kevin up. I'm running, and he's been crying for so long that he keeps tickling.  Greed. The water from him and sets it away. Oh, God, don't say sorry again. My ear drums are gonna pop if I hear that word from you one more time tonight. Oh, no! You say it again?  I never spent more time on my drawings. Specific panels made me laugh. The six of you in stampede all over it. Look at those pages again and you'll find me babbling on the street corner screaming. Oh, how's that if things were said about? By who? Me. You? James, like the way you open your story. Then proceeded to murder the next ten pages and Oscar. Oscar does not know how to articulate things. Do you hear our drug? Our Lord, when the motherfucker's out, he's out. He's our child. He thinks my story is true tonight. Do you understand anything better? He didn't say anything at all. Nada, he just pasted a look of pure disdain on his face for an hour and refilled his drink every so often. That silence, that gutted me the most. And why did he matter so much? Because he's him. He thinks I'm a horrific writer. So what did you expect? Bobby, I know you're a great writer. Lorca here does, too.  How do you think it works a little bit too off-color for them? He didn't like my story because I'm a spake. Me, hey. What? I wanted to tell him before he officially joined. You were the one to stop me. How do you know? Kevin, these people sometimes have a limited view of things. Okay. Mandela and I have been here for years and Tennessee has never said a kind word about our work. We're changed. This group isn't to help you improve. Being a part of this group is not okay. Those are the same things, aren't they? No. I really know where your body can make more tears. I'm not going to the meeting next month. Hi, Kevin. I just want to be alone now. I need to quit. Let's call it a night. Too much tequila is blowing in everyone's blood right now. That poison? It brings out the worst in everybody. It is time to finish. 2030's female, mixed ethnicity, stepmother to Nancy and Ray, and closer in age to the time and place. The first holiday season after the presidential election of November 8, 2016, San Juan, Texas, the Board of Towns in the Rio Grande Valley. Scene two, Texas Kardashian. Legends of Texas Gun Store, December 23, 2016, morning, lights up on Julie and Nancy taking the story into the story. The TV is on at low volume and we see credits rolling on a morning newscast. The station goes to commercial. It is one of their store commercials. We see women in all shapes and sizes competing in a beauty fashion. The camera cuts to a close-up of Julie, last year's reigning champion, about to give up her crown and embark on her farewell war. Nancy turns up the volume and stops working. Julie buries herself in work. The camera cuts to Julie in a short black dress. Cowboy boots and a cowboy hat. She looks like a Kardashian living in Texas. My year as queen may be over, but I will continue my path of pledge to make our community safe for everyone. I'm Sammy Strong for freedom and you should too. When you're feeling unsafe, call Titian. Nancy turns off the TV and stares at Julie who is now stacking boxes. Uh, these are going to sell by the end of deer season. They're a small company, but they reply fast and ship quickly. Yeah, it's good to support small business. We don't want sector acts right in the world. Uh, I left my laptop in the office. I need to log out of it. There's something. Can you handle the story quickly? Yeah, I thought. We agreed not to run ads like that for a couple months. Or at least until we figure things out. It's an old ad. We bought some more airtime right before your dad passed. It's going to run for a while. Why are we canceling? We need to let people know we're still in business. Isn't everyone around here preparing to celebrate the birth of Jesus? Sales are usually higher. People usually buy the higher priced items. Let's shoot a liquidation commercial. Yeah, people excited about this to come. It's a nice space, and it would be great to start getting contractors in here. You may not agree with what I'm doing, but I want to do it right. Your dad did it right. Did you know we sold a record number of guns when your dad passed? That's insane. They were paying their respects. By buying more guns? I think your dad would appreciate it. They celebrated his life with more guns. They were afraid the store would close. Really? This is Texas.  No, that's not what I'm saying. This is exactly why I need to change the mentality around you. Knock it off. I don't notify you today. The liquidation sale? We get people in here fast. No, holidays sometimes get people depressed. I don't want to contribute to the despair of this time of year. Are people more suicidal this time of year? No, I'm following for your trail. I know there are too many guns suicides that can be prevented. Then why make guns wisely available? I'm not getting into this with you. Why not? There's never a good time to talk about this. I'm not going to be able to function if you keep talking like this. Were you suicidal? I'm telling you. Can you open without me? I'll see you in the office. I'm going to grab some boxes and quickly head to the office.  I was suicidal. Yogurt and... When I was mad, I was able to tell me I wasn't in trouble. You don't know the whole story. Let me stop some crazy stuff. Do we put some boxes down? I lost everything. I lost everything. I'm lucky I was able to keep my apartment. I haven't exactly had real jobs since. It's not the same. Can you keep this between us? Do you have a passion for bees? Not with honey, but with vinegar? Being in here makes me feel like your dad is still with me. It comforts me and keeps me moving forward. I don't want to see the story changed. But at some point, you have to be fine. That's what I find about Daniel? Daniel is still alive. He's just with someone else. You know, she looks like me. You find an upgraded version, but it's still me. I place it not to judge. We all repeat the same pattern. But we all breathe. We all breathe in our own way. Just because you showed up with your brusky crystal rosary and prayed and shared funny stories that the glory doesn't need. Nine days isn't a lot of time to move on. But we went out of our way to help people say goodbye. And it was all beautiful. But I would argue that now is the time that we really start breathing. We'll take the changes slowly. Why don't you schedule a time shooting commercial? We're making coffee and items that have within reach. We have options, cups, straws, etc. She continues to do so throughout as Julie grows more frustrated.  What are you talking about? I don't understand you.  Then you show some vulnerability and then you revert back to your old ways. I'm complicated. You know the software. I decided about a coffee shop. Cheap coffee at HEB or Water Burger. There are coffee blends that are so delicately balanced. They actually want to drink them black. We won't make close to what we make selling guns. Everyone knows you start marketing before opening your debt. You will love their guns. What shop? Did you actually think this through? Most people have a cup of coffee upon waiting and give cheap coffee here. I'm not going to support the store in the same way. Excuse me?  Well, I don't like to be healthy but I force myself to do it. Sometimes it's the only way. You know everything. Yeah, because I got out. By destroying a really successful thing here. We added the shooting brain. We started teaching classes. People even paid club dues like they do at a gym. I don't want to train killers.  Guns can be fun. Shooting is just like any other sport. I don't want to set my weapon by this terrible law. I can't see. Listen to yourself. I am. Thank you for reminding me about shooting. I'll add that to the business story. Justice is a no-gown intern. Still will you shoot? It's your core and it helps you with your posture and balance. You don't want your lower back pain due to weak abs. Is this your plea against gun control? I do yoga here. We just love our guns. We could do yoga and guns. Communities share the same interests. So how do I try something new? What is it that you really got? It doesn't exist here. We have a nice community. People are friendly and you get to know everyone quickly. Here, that was your dad's issues. It was like my dad was on the ways. Why did you break up? Did you stand up for pop? It was after Christopher's funeral. Couldn't take the grief when I was going away to college anyway. Christopher? Yeah, his eight-year-old brother. He accidentally choked on a chicken bone. No one knew that I'm Lincoln. I once didn't get there in time. We found out about it in math class the next day and we were all just sort of numb. So why... a coffee shop? In the store. Ben and his family went to... it was an accident. You can't control everything. The prevention is key. Nothing is certain. Your dad always said that. Must be lonely. The community we've built here. Couples and families take shooting lessons together and I love talking some afterwards. I know we're making a difference in people's lives and empowering them. Want to get out of this shuttle? Let's continue with a potential count. Nancy exits just as rain arrives. The two sisters look at each other and pull out a nod, but don't say a word. Julie is so human, but we can't control her quickly. What's going on? She doesn't get this. I think we've really lost our chance to save a little path from which. I forget it. Things will eventually be okay. They always are. We just have to keep reminding ourselves. Julie notices Nancy has forgotten her notebook. She forgot her first notebook. Reagan picks it up and starts looking through. Leave that alone. Maybe she'll never find it.  She might start blowing out fire. How far we can go? Please. Don't. I can't take much more. I'm rolling with the punches. Having my own fun has to do. She haunts herself looking for a hiding spot and places it behind someone else. Julie is deep in thought. She'll never look here. This is not over. Julie stares at her and crosses into conversation with me. Scene 3 Hymen Cruz Cruz home December 24, 2016. Christmas Eve mid-afternoon. She is in the cruise home a tasteful version of the gun shop with less money. It is not decorated for the holidays. She's been sitting on the couch for hours drinking beer and watching old home videos and store commercials projected on the screen. We see Hymen Cruz in a much younger rage standing outside of the gun store. As the commercial plays, Reagan recites the lines as if she's Hymen and her younger self. Safety is our top priority to reach our safety. We follow the NRA's guidelines. Always keep the gun pointed in a safe direction.  Always keep the gun unloaded until ready to use. My daddy talking about safety has yours. And the best. The DC area has experience of losing power in my house in a poor start of the suburbs like going into the DC to a really nice brown stone and being like, oh man, all my food is rotting and I'm in this very weird place and what are these class differences and how is power distributed across my own metropolitan area. So a lot of what the play is about is about a female politician who's a Latina running the office for the first time and exploring those class differences and also some of those things that she doesn't even know about herself in her own community. And that's something that I'm still exploring through poetry. What it means to be twice a refugee, once from your home country and then again from your family and I'm excited to keep working on this. Yeah, that's been kind of lonely. And the play comes from being a Maricón in the country. For me I've had some like not great experiences with this play. The play for me is just rattling about what it means to be a brown queer person writing stories in a world that is predominantly not any of those things. So I'm really grateful to keep working on this play with a safe room because this room is already pretty bad at being a healthy productive writer. Woo! All my life and I always thought it was weird they were always there I never quite connected to them slowly as I was growing up I was like oh, not every play is like pro-gun and in fact my family is as many families are white divided on every issue. This is no different, this is like a really strong in my family and I just want to continue a conversation. I was initially just really scared to put it out there but I dedicated it to my dad my dad passed away a little over five years ago and I think he would be proud of me for bringing the conversation up but I just want to really continue it and have productive conversations about it. Instagram we also have an open group along with the Intensive Sunday going from January on it's an open group with the Google Form submit 15 to 20 pages and we'll work with everybody for figuring out Latinx stories we'll go on to the panel discussion and I'd love to have arts by creating liberated spaces that uplift, heal and encourage and my next project is Balisticalve an LGBTQ plus center healing and co-working space with evening performances, events and other pop-ups in Chapinero Bogota, Colombia for the Latinx theater conference in the revolution it's dark especially after my time working at equity association as a diversity and inclusion coordinator your act and your life in that moment for me after working at equity I decided that I wanted to investigate more as to what my role was and is I'm a triple citizen so I hold citizenship here in the US in Colombia and Ecuador and I went I traveled this year specifically for six months in those countries really trying to figure out what that means being a triple citizen what you know not just privileges but also responsibilities and beyond and I think the project that I'm working on now Balistica is you know in lineage of that and of that travel and that experience that I had so for me I think that's really where I'm at in my role in the revolution it's about taking resources here and bringing them there uplifting artists there connecting with people there especially Colombia on November 21st they started protests and I've been talking to my team there already talking with them how they're doing and how everybody's involved and like thinking about how Balistica will be a space where people will be able to gather and organize and meet and you know prepare for March or meet after March figure out what it is that we're doing yeah and so for me that's where I'm at and I say that to say something similar to maybe what you're going through and what you might reflect on in terms of really thinking about the privileges you may have I have being here and being a citizen here also thinking about being a citizen there or what I can do in these kind of middle grounds but yeah it's really about supporting folks there and I think you know beyond just saying that we're focused here thinking about the larger picture as well and even you know maybe thinking about donating to groups organizations on the ground there whether that is Balistica which you totally can donate I have a lot of information on that but also other groups like Runas and Resistance it's a group of each one you know people on Turtle Island North America supporting indigenous people there in Ecuador areas yeah and also thinking about ways we can hire artists there or figure out how to pay artists there I know Wing Space just had a workshop on the One Visa the artist travel visa here and knowing that you know there are ways that we can support financially in that your dollar goes so much further over there because three times I think the Colombian peso right now is like $3,500 that's where I'm at which is not like that others in and I think for me as an artist I think a lot about you know Simone's quote about an artist's rights about or works on is a reflection of the time and I think right now we're living in especially as a child with a diaspora whether it's African diaspora or just being aware of everything that's going on in other parts outside of the US it can be very daunting and overwhelming so I kind of focused the last few years in creating space and trying to bring the community together and I think that that's we're more powerful when we're together like there's a lot of differences there's a lot of things within our community that we need to work on yes and we're much stronger together and that doesn't mean one voice because we can also have our own individual voices but I think really rallying together whether it's spaces like this or finding other ways that we can contribute to our communities outside of the US or within I think that's really important so I really do see myself and maybe that's my Virgo in the beginning I've been thinking a lot about spaces and what I mean by that is as a casting director here in New York City there are two casting directors of color who are part of the CSA which is the Casting Society of America and there are 100 CSA working casting directors in New York City 98 of them are white I am one of those two and the data sorry I'm such a shipper so you're going to hear it abysmal it's when we look at Actors Equity when we look at APAC the Asian American Arts Coalition reports which every year they release on diversity all across New York when we look at the Dramatist Guild annual diversity reports we see that Latinx representation all across the board is less than 5% in New York City and across the country so in New York City between 2016 2017 the numbers of representation for Latinx actors on stages Broadway and off-Broadway were 5.1% the year prior was a little bit higher it was 7% I think you can probably attribute it to Gloria Estefan's but the three years before that we were stuck consecutively for three years in a row at 3% 8.6% of the population here and across the country we will be 25% in 2040 what I look at is the power of imagining my parents when they came to this country from Mexico to Los Angeles I take that with me when I enter new spaces because nothing to me seems as difficult as entering a new country that is a tremendous challenge not having the language not having the resources and for me being one of the two in this school in New York City I am motivated, I am charged I am determined to get those numbers up to 10% right? in the next five years because that's how I can get other people in the room too I feel like there was a period of time in my life where I felt like my job or my role was to like fix the American theater I came in today and I was like I joked I was going to say this but I feel like my job was to like actually just let it fixate it on itself I feel like in the work that I do both at Soul Project and at the movement theater company and even in my own personal rooms that I would be invited into is actually about and I think some of the clerics mentioned it are creating these spaces in which artists of color and Latinx artists can come in and be themselves and almost undo the damage of the field that is placed under mind, body, heart and spirit and so I do feel like my role is to create these rooms to create these spaces so that people can walk in as their authentic selves not have to feel like they are defending themselves and in a lot of ways I have placed myself in both of these rooms and I'm a part of at the front of the line really fighting that fighting to try and allow and create these opportunities for us to walk in as ourselves and not have to defend our spot that we were invited to so I do feel like right now I'm like 68 go ahead because when you're joking we'll be here and a army ready ready for those opportunities and affirmed and healed and not broken anymore so I guess my role is to help us heal and come together like you said the needle forward and the thing that I keep coming back to is that with each part of my job and each conversation that I have and all of these connections it's about creating space for change as possible and that's what this is tonight tonight's theater state of emergency so we've already spoken on it a little bit but really thinking about the work that we've seen tonight and thinking about what you've already heard what you already expressed think that the real state of this emergency is and also what disinformation looks like you know I when I hear things like when you talk about it I love that your statements right at the at the most most core we're talking about jobs right and so I think for me I think about sustainability right and I think about sustainability as an artist and I think about like state of emergency for me is I mean it's not even actors actually put it out on their reports which you can access on the website it's the first report they released in 2017 I believe in 2017 and it's the first one that they've done but their conclusion literally says that there is active discrimination bias in hiring like that is the conclusion right so like I look at that and I go how can we not ring the bell and say if playwrights aren't getting jobs if 80% of the theater is being written and directed by white Caucasian often times men I believe it's 70% Caucasian men who are still majority playwrights and directors and then we're employing 5% of Latinx actors and with that it fluctuates for black and African American actors that number dropped 4 points in the last year so the diversity problem is actually getting worse so I think about happiness and I think about sustainability and I think about putting food in your belly I think about living in this city which like as an outsider coming in I'm like it is so expensive let's get it and then I think about jobs at it's core and for me the emergency right now that I wish everybody would see and I know you do is where are these opportunities where are these jobs at the core we are still practicing our artistry that's our commitment to our art but in terms of actually having a paycheck yeah that's the part that for me is actually is a red flag right now yeah I think the name especially for me I a lot of times feel like and I know you said let American theater expeciecate but I feel right now American theater because it's like where the largest community in the city Dominicans are the largest community where are the Dominican playwrights where are the Dominican playwrights I don't see it ever and people look at me like oh Dominicans that's right and honestly generally feels like choking and when I look at the numbers out of 23 off Broadway houses in the last 10 years 36 playwrights have been produced and when you talk about the house and you talk about sustainability and you talk about being able to live in a city like New York City I mean even this is a separate issue but fair wage is another thing and I think I think it's important that we have the community and we have the community and we have the people and we have the community and we have the members there, that's part of the role that we have and what we do and what we energize and what we lift and that's really important that the theater I think he described and this is a separate issue but fair wage is thing that actors... reports is that us Latinos, the Latinx folks, we don't negotiate our value. And the data is there that when you're offered a contract, either if it's directly offered to you because you're going to present yourself or your agent, we are the ones that don't negotiate above minimum. So out of all the folks, out of Asian, Native, Pacific Islanders, Black, African American, yeah, all across the board, in place of musical theaters. So on average, just put the numbers out there, on average, actors negotiate about $92 weekly above minimum, weekly minimum. And Latinx folks are falling short between $20 to $57 on that weekly. So that's an extra $300 to $400 in your pockets that you are missing. Because we are, you know, we're only percent of 5% across the stages. When we are handed a contract, we should not receive it with gratitude. We should receive it and say yes and I'm going to negotiate $92 to $100 additionally a week because that is the national average. What is the national average? What's the number? $92. Additionally, above minimum, weekly. So for me, this conversation, Latinx theater, state of emergency, I think for me, what's really bubbling up is thinking about the marriage of white supremacy and capitalism. And that's New York City, the place here, the US globally Latin American country, the US historically the relationship there currently to this day and in the future I'm sure has been involved and I really think that it is that tie of white supremacy and capitalism that keeps kind of budding in. When you talk about within our community addressing our anti-blackness, addressing how we need to be doing work internally as well. And so for me that is part of the state of emergency. I think a big thing for me going to Colombia and being in Latin America is thinking about all of a sudden when you're in a place again where people of color, it's not the same. People are whites there. People are mestizas like me. People are, yeah, like there's these racial categories that you're putting that are just totally different and thinking about how things actually are worse in some ways and resource wise as well. So yeah, I guess what I'm trying to say overall is that for me like the state of emergency is thinking about people like dying and people needing water and people fighting for liberation. So yeah, I don't know exactly what I'm trying to say but this is where my mind is at at this point and I welcome other folks who are with me in this stage to connect and everyone has a role in the revolution. I don't really remember all the other strong questions on this. Next speaker, state of emergency. Yeah, I don't know. I think everyone has brought up such incredible incredible points that are even like one in my mind. You know, I do feel sometimes like, I don't know, sometimes I feel like I'm like, okay, I'm like freaking out about theater. Do you know? I'm like... You're just the rest of the world out there. You know what I mean? And then I get overwhelmed by it. But then I think sort of, and I think sort of what the points that you're bringing up like it is, it's like that constantly be written, constantly reminding myself of both my position here and in a position of incredible privilege of being able to do what I do and then also reminding myself of my position within a more global sphere. And then like, freaking out. You know, taking a shot and being like, ah, that's the emergency. I don't know. But I also, I do keep thinking about, I mean we talked a little about this idea of coming together and seeing these movements that are happening across the world in Latin American countries where people are truly coming together to make change and imagining like, what would that look like in a community that like for so long, like I have not truly felt a part of and has only been very recently that I have felt a part of a community that like I have been identified into and only recently, really in the last decade, really started to identify myself as a part of and wondering what would the revolution be if there was that ability to find that commonality to really begin to, not even begin, to do the work of examining our own anti-Latin or misogyny in our communities and our homophobia, transphobia. Like there's so many issues that came up in so many of the plays that were really like moving and there was one play that was like identity is not a platform. I'm like, what are you doing? I'm doing a conversation with myself and in the position of my own position and just like rattling this idea of, and not this sort of like, yay, we're all holding hands, we're together. But like, what does it mean to actually recognize like the power of literally this room, even just like looking out and being like, oh my gosh, like look at this room and what would it be to see this room everywhere, always in the American theater and what would that taste like? This play where he's had some traumatic unsavory moments. I'm excited when I found out that it would be part of the intent, the mentorship. But as we've had our open rooms where folks can come in and bring pages, Oscar and I have heard the same thing from other playwrights. That is incredibly sad to know that you as a playwright, in the most basic thing, taking identity out of it, as a playwright can't come to a space that's supposed to be for playwrights and feels safe to bring something that comes from inside of you and feels like whatever you're bringing, oh that's wrong, all this work, we don't understand it, doesn't make sense, that's not what people talk, that's not what people sound, that's not who people are supposed to look like. And to understand the trauma that that does to you on a psychological level, like, you know, so it comforts me in a way to know that having something like the Latinx playwright service, that playwrights can come and just bring the work and not feel like they're going to be judged. You can say five million words in Spanish, it's totally fine. You know what I mean? Or say five million words in Creole, in French, in Portuguese, in Quechua, all the languages that inhabit Latin America, like that to me is incredibly powerful. So I would love to see more. And I think the point of the collective imagination, right, is the collective Latinx intersectional imagination, right? When we start thinking about queerness, when we start thinking about blackness, when we start thinking about, you know, even Asian, Latino, it's like, it is intersectionality exists on all spectrums, right? And so what I love about that is that what you're saying is that we have to, I think what I'm hearing is that we have to confront our own whiteness, right? Or a relationship to it, and then do something about it, right? Because, or decentralize it, right? Because in these rooms, that's what's happening, right? In my casting sessions, what I try to do is like confront it, identify it, decentralize it, right? Even by just changing the person that's sitting in the chair, right? So like, yeah, that's powerful, and we can imagine it together. So I think that this all kind of, it stems from this idea that, and something that I talk a lot about, is that you can't actually create something until you've imagined it. And so just us all being here tonight imagining what that is, and actually putting it into practice, like this is us doing the work. And so we do have to wrap up this conversation. But I do want to invite the audience as you're thinking about these plays, thinking about this conversation, and as you're going home tonight, I want you to think about what is your role, and what does transformation mean? At 7 o'clock, after I go to this PRTT on West 47, the sole project is hosting our annual holiday party. And it is great for all to come. So please come and enjoy the discount code for Batcha playing at PRTT on Thursday evening If you type in S-O-L-T-N-O, we'll all theater night out in all caps. You will get a discount for tickets that night. What? Those tickets are awesome.  But there are strengthening numbers, knowing that this is what we have to face. The numbers are not going to change by themselves. We're going to change them. And we're going to change them in settings like this where we can get together and build a community. This is only a sliver of the community. So I have a few suggestions for you guys to take with you. If you may expand the viewpoint of your artistry, take business classes. Come for free at the Brooklyn Public Library. Educate yourself. Take space to quote Sozi. Build companies. Support each other. Once you have those companies, collaborate with each other. Next time singnyc.com. And then whenever those companies and those projects that you build are great or are suffering, please celebrate each other. Please celebrate your work. Don't be afraid to apply for grants for your work. What's the words that they can say? No, we've heard that before. Learn about development management. Take that admin position. And for the love of God, if you can, join a board of directors. You don't need much to join a board of directors. You need work. And don't ever underestimate your work. So as a community here, one thing we can do is grow. So on your way out, please make sure that you introduce yourself, that you talk to each other and you learn from each other and learn a little bit from each other, but that we all see each other's faces so that this continues and repeats. Because this is how it happens. Thank you so much for being here. Thank you again to our incredible panelists, our playwrights.


Hi everyone, Myself Sudhir. I am senior tech lead at endurance. So today we are gonna discuss the art of decomposing a monolith So before jumping into the talk, how many of you guys actually deal with monolith on your day-to-day work? Good interesting. How many actually started transitioning to microservices? Almost 10-20 percent. Good. So this talk is for you guys So who are we? So at endurance we help small and medium businesses to come online be it a domain name Hosting website builder. See we provide you with a lot of tools that help any small business to come online in a very short time And we have like variety of popular brands Primarily you guys would have heard about host get a blue host big rock So and I hope you guys already have a domain already purchased from us Yeah, and we are like largest in the since we have we currently manage around 40 million domain names And we have 55,000 hosting servers across 25 data centers So this is the scale at which we operate globally and today we are specifically looking at our Apex story like I'm gonna take you guys through my journey over the last three years on Decomposing a monolith, which is our one of the core platform in Apex How we transitioned in the last three years from a monolith to a microservice architecture and where are we currently and in this process What are the challenges we have faced? So as you see like this platform is actually a 70 million dollar platform We which is generating like 70 million dollar revenue annually across with 10 million domain names active domains And we have around 1200 APS that are exposed from this monolith So it has 1 million lines of code so you can imagine the complexity So this platform is built over 20 years now And it is very tricky for once for someone new to even make new changes in this code base So there is a complexity we are dealing with and we receive traffic around 20,000 requests per minute on a average scale At the same time we have 500 GB live data So primarily we use Postgres for our transactional data and we have around 1.5 terabytes of historical data that is currently archived and These are the brands that primarily operate on top of this platform So big rock is a retail model wherein any of any of the individual users like you and me can go and purchase a domain name Get the hosting package from big rock at the same time We have a unique B2B model called reseller club wherein we cater to the web professional needs and they buy bulk domain names and hosting service from us And resell to their customers using our customized billing platform and other services we offer to this web pros So what are we gonna cover today? So being a happy monolith family for 20 years Why did we even start thinking of going towards microservices driven architecture? What is the need that has driven us to go to microservice? And we'll see the common mistakes we did and we don't want you guys to repeat if you are doing the same At the same time we'll actually see in detail how we transitioned and successfully pulled out one of the important microservice from this monolith And the challenges and the tools and technologies we have covered during this transition And then we'll also cover the scaling redundancy aspects of the microservice not just filling the microservice But how did we successfully manage it to get more scale? So microservices won't happen overnight, right? So before that we'll see the challenges we had with the current monolithic platform So as you are seeing right so the main limitation we have faced so when I joined the team three years back We are running out of DB connections So we have Postgres master database where it gives like 50,000 queries per second throughput So we actually spent a lot of time in tuning the connection pool We moved to Hikari CP from a legacy connection pooler on the Java side We spent a lot of time in evaluating various data sharding capabilities of Postgres itself But we are not successful We have hit our max capacity on the DB side and we have tuned the parameters such a way We get the best throughput of our production database server which is around 400 DB connections So ideally the DB connections should be like number of CPUs into two There's a max any DB server can perform to its best But we have a 80 core production server and we already like touch the max limit any database server can give the throughput So we hit the scale of the database server and the next important limitation We have came across is the Java heap size. So this platform is Java based So we initially when we joined like it is like we have allotted 4 GB max heap But we started seeing out-of-memory errors when there is spike in traffic as and when we integrate new features The heap used to get out-of-memory we used to get out-of-memory errors very frequently and we like suspected as any developer We started looking at are there any memory leaks, but in vain We are not able to figure out any potential code problem that would have caused the memory leak So it is indirectly It is indicating that as the number of services or the objects are loaded in the memory the need for the JVM heap kept on increasing And eventually like we again the max a JVM heap you can allot is 12 GB beyond 12 GB Any Java process at this point cannot perform well be it Cassandra elastic search beyond 12 GB You can never tune a Java process. So in in those aspects also We have already kind of in the middle way to touch the max limit of a JVM heap size and Other challenge with the monolith is the you cannot scale a particular functionality, right? So during a promo or a festive season our customers try to buy new domains Let's say there's a new TLD called dot tech launched. So we see more Hits for the initial lookups like I want to buy so the dot tech So similarly the customers will be primarily doing this lookup operation to further buy a Hosting package or to get their website hosted on our servers So in order to do this basically we are not able to scale just that particular functionality Because we need to deploy this monolith and then even if you put like more instances of the Java code You still have the limitation at the DB layer So we already hit the max-limited posters. We are in the middle way of hitting the max limit of any good Java process And as you see this monolith has various modules inter couple right intertwined So it does user management product management and whatnot. So you can imagine what all it does with the 1 million lines of code and Again same thing like you cannot even the other common mistake or common issues We see is when a developer intended to touch particular functionality So I want to enhance the building capability for one of my customers I cannot do it without impacting the other modules because end of the day the same code You need to go through the testing for the full monolith and then see if it not breaking any other workflows And we see many outages related to unintentional breakage of code from a developer standpoint so these are the challenges we have with this current monolith platform and Then we started thinking of Microservices, so how does a microservice help to solve this particular problem? So there is something called vertical scaling which we covered similarly horizontal scaling Which is primarily applicable or easy to achieve in no sequel databases, but in post-press world. It is very tricky to scale your Transitional DP into multiple distributed systems There are some solutions like post-press excel Citus data which we have evaluated but again they do not suit our needs because it's again a legacy system You cannot redesign the full system as per the expectations of this data sharding technologies At the same time the microservice will give you the Flexibility to choose your own technology, right? So if it is a proper transactional kind of workload you have you can choose to use post-press or my sequel database Similarly, if it if you are doing simple search functionality or you want to like get like quick lookup functionality You can use any of the no sequel databases like MongoDB Elastic search Cassandra So you as you go towards microservice architecture you get the flexibility of choosing your own tech stack At the same time you can loosely couple your teams So currently we have our own development team of 30 to 40 people working on the monolith code base And all the developers should make sure that they do not break each other's code Like when I'm committing something I should not break my peers code, right? At the same time We also have this same CI CD module like you can only deploy your code along with others changes Even though we are agile, it's always like complex to make sure you don't break someone else code So that once you go to microservice architecture You get the flexibility to choose the tech stack with smaller teams where you get more velocity and polyglot programming So wherein you can choose your own tech stack and you need not just depend on Java tech stack You have the flexibility to have a diverse team who are specialized in particular functionality and scale it to whatever extent you need At the same time, yeah, you can have this like versioning releasing Capabilities tied to that particular microservice, right? You can easily deploy the microservice without worrying about how the monolith is impacted because now you are loosely coupled Yeah, so we'll See the common mistakes which I noticed also like I think in the IT industry people do these mistakes So the first big mistake we do is sharing the database so we think okay, there is a issue at JVM layer We know there is a like we already hit the max limit of database But why don't we just rewrite some of the Java code deploy in a separate like CACD module using dedicated Git repo But underlying you are still sharing the same DB What it means when there is a downtime for the database or you want to do some kind of upgrade to the database You are actually impacting multiple services along with the Internet functionality. You are gonna break something else So this is still a monolith architecture for me with just an additional steps It's not a microservice architecture people missed some developers initial stages. They may assume It's a microservice architecture, but yeah, as long as you're sharing the DB. It's a monolith with additional steps So the other mistake we did in like in order to get this speed like we are growing like Very we are expanding our app app platforms We are building new front-end experience panels for resellers and retail customers So in this in this like in a need to grow we started building this orchestration layers Where in we try to like duplicate some of the functionalities like authentication You can do some kind of transformations like if I had to pull user details of Sudhir I'll query for users to the along with another API called get address details So you will call multiple API calls to the monolith you aggregate this responses and return it back to the front-end So these kind of transformations and some kind of caching ability so that you don't hit the max throughput of the monolith we kept on building this orchestration layers Which ultimately again it may help you temporarily, but in the long run again You have a bottleneck at the monolith layer So it's still falling in the monolith with additional steps category Underlying monolith is not scaling, but you are just building orchestration layers to get the immediate benefit of Speeding up or taking more throughput on the client side Yeah, so now we'll take one particular use case wherein we successfully pulled as a microservice And how we actually got the scale benefits out of the microservice So how like when you go back again, I think about microservices like what you should actually reflect on is Discovering your first microservice. That's the challenge. We also had like how did you choose the microservice? Okay, you are thinking microservices will help in adding more scale to the monolith But how did you choose the first microservice? So in my case, we applied this strategy called ice cream screw So what it means effectively you prioritize your business critical functionality For example during promos as I highlighted there is more traffic for look-ups registrations Compared to let's say addition of new products or integrating with more payment gateways There is more traffic coming on the look-ups and it is very important for our business for the user to look up the domain And then do further purchase of products with us Else he may choose to go to our competitor, right? If we cannot give him the ease of looking up and then purchasing on our platforms, he'll choose the competitor So that's where we identified domain look-up as one of the first potential microservice That we can pick up and we'll see immediate business growth and also like the scale that we required at The same time in your case if you have multiple critical functions say you need even to scale your payment module So you prioritize and figure out the efforts versus benefits So what is the engineering and operational efforts? You need to put in to build the microservice versus what is the monetary Monetary benefit and also other scale benefits you will get with that exercise So try to do thorough analysis so that you can easily justify to your business and also your tech lead that this is what I'm Going to pull as a microservice and it will help in scaling so and so if if required if possible if you put monetary value It will help you even to validate once you go live is it really adding value to the business and Given that I covered ice cream scoop There are other strategies to the other popular strategies Nuclear strategy wherein you rewrite the whole monolith like you build a parallel team Who does the full rewrite of this monolith and then go like a big bang launch? But most of the cases if the monolith is very old and you are like doing like more and more features every month on month It is not a feasible solution right so you cannot rewrite the full monolith by the time you rewrite Let's say you take two years to rewrite the full monolith there may be more changes happening in the monolith So it's like a race between the old monolith and you need to keep up the pace in the new team So you are never gonna go live that but it works for some companies in my initial stage We did that but again it won't be a gel model. You need to go like a big bang Launch also have a time wherein you don't make changes in the monolith in a agile model That won't work nuclear strategy may not work So this is like okay now that we identified the microservice How will you prep up this first we look at from the dev perspective what should the developer do to make this monolith future proof So what we adopted is something called modular monolith. So it's a Java platform So we applied this concept called may when modules wherein you have the flexibility to write More code in the new frameworks. Let's say we don't have historically spring and hibernate in our code base So with may when modules you can actually have multiple projects under the same get repo and properly isolated So you can choose something like we have built one common module to interact with database active MQ and also other third party Registries we built a commons package which can be shared across say modules or future microservices So that you are building this new system with the attitude that you are gonna pull it as a microservice at some time When there's a need at the same time you cannot avoid the old code, right? You have already a lot of functionality built over 15 years You cannot get rid of the code overnight or even within one two years So you may have to still interact with the legacy code to get some of the functionalities working But at the same time you have the advantage to read to write new APIs using the modern frameworks and modern Protocols for example, you want to introduce gRPC right now. I will see the rest based framework So with this approach of may when modules I can easily create a new module Let's say user management using gRPC protocol and whichever framework spring would whichever I want to use at the same time Then how are we in interacting with the legacy classes? So there is a popular design pattern called facade pattern Where in what it says you abstract your old system primarily using interfaces So you build loose coupling between the new modules and the old modules applying facade pattern Where in the new code can talk to the old code, but not the other way So never write the code like again to if you write to a again You are stuck if the old code is invoking the new code again You are stuck in the monolith intertwining and tight coupling So you need to build loosely coupled modules taking in introducing new interfaces wherever you need to interact with the legacy code add new interfaces in the legacy code and Couple them using dependency injection frameworks like spring and you can easily interact from the new modules to the legacy framework So at any moment if I have to pull a microservice out say user management as a microservice I have the new API is written. There may be some APIs still using the legacy code But again, it's lesser work compared to rewriting everything. I already put the platform Where in I can easily pull out the new microservice So using these two we applied these two particular concepts may when modules and facade pattern and we made our system Ready to be pulled as a microservice like we have put the path to get the first microservice out So as I was telling so we choose domain lookup service as our first microservice and we have chosen Cassandra as database for this particular lookup service So out of the 1200 APS actually 10 APS scattered to this particular functionality and the amount of traffic This lookup traffic receives is almost like one third of our production traffic The whole platform if at all 1100 APS are receiving a 12,000 requests per minute The domain lookup functionality itself the 10 APS constitute to 8,000 requests per minute So that's why we it's easy for us even to identify this critical functionality and start putting path to pull it out And we have chosen Cassandra because it's a read heavy API and there is no Transactional functionality that we require. So we just to we have evaluated radius versus Cassandra and this is a critical service So we want very high availability compared to consistency So eventually we have chosen Cassandra as a data store for this microservice And we start and this is called polyglot persistence rate So you you get the flexibility to write with your own technology in this case We have chosen Java because again we have traditionally developed most of the back-end in Java But at the same time you have the flexibility to build with Golang or Python whichever is relevant for this microservice and The data store also you should be very cautious What you are choosing and of the day you need better performance from the microservice compared to monolith If the old APS are performing better than the new APS definitely your users or business won't use the new code So you should make sure you choose the right technology in our case There is no transactional nature of data required So we had the luxury to choose between the popular no SQL databases and we went ahead with Cassandra At the same time there is one more interesting pattern. So this pattern is also popular architectural pattern It's called command query responsibility segregation So in the initial transition or whenever you are pulling more and more microservices if the microservice For example, this monolith also has differences to some of the tables. We have migrated from post-quest to Cassandra So you need a bridge like as and when you cut more microservices Migrate your tables or data to another data store You should also think of how does the old functionality not impacted the monolith should not break when I just pull the domain Look up out so in order to make sure so you can periodically sync the updates that are happening in the microservice Actually, it's a real-time stream either using Kafka or active MQ We can stream the real-time updates happening in your microservices to the monolith so that the functionality doesn't break in your existing system So this particular pattern helped us and it's very popular like so that when you have more microservices You need not worry about the impact on monolith You keep streaming the data so that your monolith still continue to function if there are users still on the monolith platform For the existing API they still continue to function So this is one part and then the main part is okay Now that you have a production system running happily for several years How do you actually migrate the user or the traffic to the microservice? So in our case we have introduced a new endpoint for the microservice to redirect any lookup traffic We started publicizing to our users with advanced notice Okay, this is a new endpoint which will give you better performance and also scale compared to the monolith You start advertising your new endpoint for the microservice at the same time You need to be sure that there will be users always on the old system Right coming through the load balancer that you already have on top of the monolith So make sure you like strategically migrate the traffic to the new microservice So we have adopted something like a canary deployment slash AB testing what it means so whatever traffic is coming for domain lookup on the old endpoint Make sure you do like weighted or incremental traffic migration We use it the concept in HAProxy to add weighted load balancing kind of concept Where in we send like partial traffic any traffic coming to domain lookup on the old platform You migrate 10% of traffic to the new microservice So that you can have the production testing at the same time if something goes wrong You can always roll back as an engineer. We should be ready for production issues, right? So don't just think of happy part that microservice will solve everything and it will be running without issues, right? There will be more issues that you discover only in production because in dev testing nothing comes out So yeah, so make sure you migrate the traffic incrementally at the same time These are the aspects that we've primarily focused So once we made this microservice live around December 2016 We actually made sure that it is the microservice is highly available It is giving correct response in production with various types of payload we compared okay This old micro old monolith is giving this response for this particular lookup for dot-tech It is giving this response for Sudeer the same response is coming for in the new microservice Similar response is coming when someone hits the new microservice at the same time performance like monitor Like okay is the performance as expected from your microservice. Is it performing poorly? Did you write bad code or did you improve the code quality in this migration slash refactoring and This particular screenshot I have taken from current production. This is we use ELK for the log analysis So as you can see this this is primarily like structured as per the RED principle The first graph is the rate of traffic So the traffic coming to the old endpoint at that moment of line is 700 There are 700 requests per minute coming on the old endpoint versus 900 requests coming on the new endpoint So this is primarily indicating okay There are still users coming through the old endpoint, but right now we migrated all the Traffic to the new code base. So this is indicating people are still yet to use our new endpoint that was publicized At the same time the error count So this is a non 200 response codes that both the old endpoint and the new endpoint is returning So this is to make sure that you didn't increase the error count or frustration of your users, right? You should always at least make sure it is in line You don't get a shock that there are more errors and users get frustrated So just keep an eye on the rate of errors like this is like 20 Like failures per minute kind of right in both the new and old endpoint It's similar roughly similar set of failures at the same time the response time as I was telling you When the people are hitting directly the new endpoint the response times are better compared to when they come from the monolith Why because you have a extra hop of HA proxy when we did the migration in our case But there may be other approaches that will suit you to do the migration as a AB testing model So that's where you see there is a approximately 200 to 300 milliseconds latency added by the network hop So once uses all users migrate to new endpoint they get the benefit of faster response times and no latency So this is how everyone like should monitor it We should not Just deploy the code and think everything will work magically just make sure we proactively have this Toolset to even we run periodical health checks in order to ensure the correctness is good Even with more and more versions of the microservice we periodically run automation test api test To for as a schedule health check And this is the benefit we got by pulling the lookup service, right? So as you can see the monolith platform at this moment when I took the screenshot it is receiving roughly 8000 requests per minute This is a screenshot from New Relic. We use New Relic for primarily the application monitoring and Kibana and ELK stack to check the logs and see how it is done at the load balance level and You see the domain lookup is receiving roughly 4k requests per minute the new microservice So effectively there is a one-third gain in the monolith now the monolith can take Can give you more throughput effectively because we successfully isolated the database Isolated the Java layer including the load balancer. So now you we have the breathing space in the monolith that it can take Extra load that it is serving earlier. We can use the bandwidth for new functionality So this is our journey in migrating the first microservice But we didn't stop there Then we started thinking okay now that we are excited with this benefit We wanted to see what is the next potential microservice that will help us to scale more Then we started looking at the orchestration layers. I was highlighting, right? So the redundancy or the duplication happening across engineering teams primarily is around the odd service at the same time With the growing needs of security There is a demand from our resellers and customers to have multi-factor authentication Enabling Google Earth as two-factor authentication at the same time We it's a need of the art that everyone do social login like no one likes to go and register, right? No manual registrations We want to do social login to easily sign up on any particular application. So to get these benefits We started evaluating variety of open source authentication services. We evaluated key clock odd zero octa Finally, we have chosen key clock as our solution because it suited our needs We have a detailed a matrix where we compare the features that available across the open source authentication service and And this particular key clock service works on the basis of what protocol which means user can Generate a jwt and then use that particular token to invoke any of our micro services directly from the front end So he's traditionally we do basic off which means every time you make a API call You need to pass pass your secret or API key But in this new approach, we are giving the benefit to the customers wherein you use our secret to initially generate a token Once the token is generated you can use the token directly from the browser if you are like using our APIs and Selling something on your like client client applications You can easily integrate from the client browser Set the token in a cookie or the relevant place in the browser so that the token gets passed on With every API call through authorization header it reaches to the monolith or the micro service Depending on which API you are like querying and you can get the benefit of reusing the same authentication service across different Microservices so this will be like a centralized authentication service But yeah, we need to make sure again it's very highly available and it won't impact your systems if there is an issue and Also going forward as and when you build more and more micro services You will this the need for inter micro service communication will also increase CQRS pattern as I explained will solve some particular Backward compatibility with the monolith, but what about let's say if there is a genuine need for Registration domain registration module to talk to payment module So you need some kind of security between the micro services So that also can be achieved seamlessly by JwT token the JSON web token So in in to be more secure we can use something like JwE JSON web encrypted token so this particular concept will help even when you grow with more and more micro services You can take advantage of your centralized raw service So given that we saw the first successful micro service and the next potential micro service which we are working on We also want to cover quickly our learnings with respect to scaling the micro service itself So traditionally we are a we use bare metal deployments So we do rolling upgrades wherein you deploy the you take the node out of load balancer deploy the code Put it back to the load balancer and we repeat that process on all our production web nodes So it is time-taking it takes roughly 20 minutes to deploy any code change to our production across five web nodes So and also the main Like pain point for us with the bare metal deployments is a time spent in upgrading tech stack So we are a Java tech tech tech tech tech tech right primarily We want to upgrade from Tomcat 7 to Tomrat 9 because of the sent OS limitations Which OS 6 version we are not able to move easily from Tomcat 7 to Tomcat 9 Similarly, there will be our tech stacks Which are tightly coupled to the operating system or other? Dependences that are installed on the machine itself So it makes both the dauson sysad life difficult in terms of upgrading any tech stack because you need to repeat the same activity across all your production systems, which is time consuming. Also we over provision the hardware. So as you can see, right, we have a 24 GB and around 24 CPUs on our production hardware, and we are only able to take advantage of 6 GB RAM out of the 24 GB RAM available. We are not able to utilize the full capacity. And the other reason being we are PCI compliant, so you cannot deploy more than one service on a bare metal. So that also restricts us in terms of utilizing the hardware. At the same time, CPU is definitely underutilized. It's primarily like even we have high number of cores, so we are not able to utilize all the capacity that is available on the hardware. So the solution our system architects came up with is the de facto standard is Kubernetes, and also like we started containerizing our applications. So with containerization, the benefits primarily are you can like the developer can have the Docker file ready with all the tech stack requirements he needs, and the sysad can primarily focus on primarily managing the orchestration layer and how to scale your application. So it will help you in doing faster tech stack upgrades. And other pain point I'm sure you guys also facing will be the similarity between staging and product. If you are using bare metal deployments, typically like most of the complaints I heard is, okay, my staging is not similar to prod. So whatever I tested, it's working in staging, but nothing works in prod. And we had to roll back the code. So that happens because you don't have similar tech stack. For example, you have different Tomcat versions on staging and production, or you might have compromised on the upgrading OS in your staging. So all the typical issues between to make the staging and production similar is like very challenging for any IT company, right? So this particular thing can be solved if you contain reservoir app. At the same time, we are actually using OpenShift, okay, the version of OpenShift, which helped us to segregate both staging and production hardware. Like we have a cluster of nodes wherein you can segregate easily using the namespaces and labeling them as staging and production infra, so that you can utilize this same infra for both staging and production with proper segregation. So and also Kubernetes helps in the optimized infra utilization. So it can be like, there may be, historically there is MeSource, but now I think Kubernetes is a de facto standard, no debate there. And we have deep dive sessions, if you guys already attended some of the sessions. And it helps you to autoscale. And also, primarily, it helped us to get this out of the box, canary deployment, AB testing kind of CICD capabilities without much thought process or writing customizations. So all these features are out of the box and there are many more service mesh and other interesting features in Kubernetes itself, which will help you to transition to microservices. So given that we saw what we did so far, this is what we are going to achieve in next two months. So this particular architecture, we are calling it as 2.0. So wherein we are introducing an API gateway called Kong. So primarily we evaluated AWS API gateway, Kong, Tike. So there are various API gateways available open source and also paid versions on cloud. And for our needs, we evaluated both the cost aspect and extensibles perspective. We have chosen Kong. We have written our own custom plugins to do rate limiting to interact with the centralized raw service. So the flow, it will look like the client will enter our ecosystem using a JWT, which is secure in itself. And then any request coming through the gateway will be rate limited using the Redis as a data store. We currently rate limit by IP. So if you hit more than 500 requests by IP per minute, we primarily rate limit at this layer itself. So the request won't be forwarded to the microservice. And every request after getting rate limited, after passing the rate limiting check, we forward it to the centralized raw service, in this case key clock, wherein we verify is it the token generated by our own key clock or not. So we do some kind of signing. We call it Java JSON web token signed token. So wherein you can verify is the token is the source of truth is key clock or not. Once it is verified, then we also currently building a caching layer wherein if the particular API with the relevant payload is already available in our caching layer at Kong level, we return the response directly from the caching layer. So it need not even come to your microservice. So yeah. So then once if it is not available in the caching, it will forward to the relevant microservice or the monolith platform itself. So this particular architecture we successfully deployed in staging. Right now we are going to make it live in next two months. So the key takeaways I want you guys to remember from this talk is just reflect on your current platform. See if there is a really a need for microservice. If at all you are operating at a small scale or you have only one particular functionality to scale, don't think of microservices as it only adds complexity. Just see if it makes sense for you. If at all it makes sense, then what is a microservice? Do thorough analysis with efforts versus benefits? What are the challenges or monetary benefits you will get with the microservice you are thinking of? And container is your application. Don't just go with the traditional way. Try to container is your application even if it is monolith. So that you can have identical staging prod environments at the same time, take advantage with faster tech stack upgrades and use Kubernetes or any other flavor of Kubernetes to manage the orchestration layer to get the benefit of infrastructure utilization and autoscale capabilities. And if feasible, if it makes sense to you, if you have a lot of redundancy, start using API gateway. It also helps you to abstract whenever if I have to pull a new microservice out of the monolith, I can abstract my user because earlier when we transition, we had to create a new endpoint. But if you are using an API gateway, you can easily route the traffic abstracting the user and then forward it to the relevant microservice. Thank you all.


Hello everyone. I am Vinit Thribhuvan from Vulture Institute of Technology and in this video lecture we shall see how to solve all pairs shortest path problem in a given weighted graph. At the end of this session you will be able to solve this problem by dynamic programming approach. So what exactly is the all pairs shortest path problem? Okay so in this problem we have a directed graph which is a set of V and E where V stands for vertices and E stands for a set of edges. Now these edges are weighted. The graph is weighted and every edge has an integer valued weight associated with it and this particular weight of edge may be positive or negative. So the solution to the problem is or we have to find the shortest path between any two pair of vertices. This is the problem. So we are given a graph, we are given the vertices and the edges are marked with weights and we have to find the shortest path between any two pair of nodes. So how does dynamic programming provide a solution to this particular problem? Firstly we find the adjacency matrix which holds the cost of every weight in the graph. Then in the initial matrix cost of vertex i to i that is from a particular vertex 1 to itself will always be 0 and if there is no edge between two particular nodes say for example i and j then we will mark it as infinity if that particular edge does not exist in the set E. Now we will compute n plus 1 matrices including the initial matrix. So if we have n nodes we will construct or we will find out n plus 1 matrices and the final matrix will hold the shortest path between any vertices. Now this is the equation that we will be using. The formula is a of k of i j equals minimum of a of i j in the previous matrix that is k minus 1 comma a of k minus 1 that is in the previous matrix the value that we find is i k plus k j. Now this kth index or this kth vertex will be the intermediate node. It will be the node from where we are accessing the path. So we will see how to apply this particular formula in the upcoming slides. So consider the graph given it has three vertices 1, 2 and 3. This is the initial matrix A0. We have marked 1 to 1 as 0, 2 to 2 as 0 and distance that is edge 3 to 3 as 0 because there is no self-loop. We have marked edge 3 to 2 as infinity because there is no direct path leading from 3 to 2 and the rest of the edges are marked respectively as the weight stated in the graph. Now we shall see how to compute the minimum weight between any two nodes. So how do we solve it? We are going to find out four matrices here. We have found out the initial matrix A0. Now how do we find A1? In A1 the three values of cost from 0 to 0, 1 to 1, 2 to 2 will be 0 because there is no self-loop. Now if we carefully see first row and the first column has been kept constant. The reason being the value of k when we are computing A1 is 1. That is why first row and the first column values will be same and we have taken it from the previous matrix as it is. Now in this matrix we are required to find only two values that is 2, 3 here and 3, 2 here. So A1 of 2, 3 is as the formula suggests, previous minimum of previous value of 2, 3 that is 2, 3 if we see that is 4 or A0 of 2, 1 that is A0 matrix and the value is 2, 1 that is 8 plus A0 of 1, 3 that is 13. So we see that the minimum value is 4. So 4 is retained in A1. The value 4 is retained in A1 for A1 of 2, 3. Now if we compute A1 of 3, 2 we will compare two values. One is A0 of 3, 2 in the previous matrix that is infinity and A0 of 3, 1 plus 1, 2. Why are we considering 1? Because the value of k is 1 and k is our intermediate vertex. So 3, 1 plus 1, 2 we are just seeing whether there is an indirect path which is lower than the infinity value here and yes 3, 2, 1 and 1, 2, 2 is minimum than infinity. So we consider 11. So here we see that our weight here is updated. So it has reduced from infinity to 11. Now we come once we have found out A1 we have to find A2. Now again these three values will be kept as 0. The second row and the second column values will be kept as constant and taken as it is from the previous matrix because we are having the value of k equals 2. Now we are required to find two values that is A2 of 1, 3 and A2 of 3, 1. So applying the same formula A2 of 1, 3 equals minimum of two values. One value is the previous matrix value of 1, 3 that is A1 of 1, 3 that is 13 if you see here or A1 of 1, 2 plus A1 of 2, 3. Now why are we considering 2 here? Because 2 is our kth value. So we compute 1 to 2 and 2 to 3. So 1 to 2 and 2 to 3 is 6 plus 4 that is 13. So we come to know that our value is updated and it is getting minimum than 13. So we write the value of A2 of 1, 3 to 10. Now we have to find out A2 of 3, 1. So A2 of 3, 1 equals previous value that is A1 of 3, 1 or A1 of 3 to 2 and 2 to 1 that is 3 to 2 plus 2 to 1. So minimum between two values that is 5 or 11 plus 8. So we come to know that 5 is minimum amongst the two values so we retain it as it is and the value 5 is retained. Now next we have to find out A3. Now similarly A3 when we find out as we have been doing it since the value of k is 3 we keep the third column and the third row as constant because it requires us to keep it as constant. From the previous matrix we take the values and keep it as it is and now we will find out A3 of 1, 2 and A3 of 2, 1. So we compare it between two values. One is A2 of 1, 2 that is the previous value that is 6 or A2 of 1, 3 plus A2 of 3, 2. Again I would like to repeat why 3 because 3 is the kth value so we compute 1, 2, 3 and 3, 2, 2. So if we find out what is the minimum 6 comma 10 plus 11. So we come to know that the minimum value is 6 so we retain the value as it is as 6. Similarly A3 if we see A3 of 2 comma 1 it will be A2 of 2 comma 1 that is the value in the previous matrix that is 8 or A2 of 2 comma 3 plus A2 of 3 comma 1. So we come to know that 8 is less than this value so we retain the value as it is and this is the final matrix that we get. Now 1 to 2 will be 6, 1 to 3 will be 10. So we see that 1 to 3 has a direct edge of 13 but if we see that 1 to 2 is 6 and 2 to 3 is 10 so our distance between 1 to 3 the pair of nodes that is 1 to 3 is reduced from 13 to 10. Similarly 2 to 1 is 8, 2 to 3 is 4, 3 to 1 is 5, 3 to 2 is reduced to 11. So this is the final matrix and this is the final weight between any two pair of nodes. So this is the solution for our problem. So at this point in time I want you to pause the video, consider the graph given and find the shortest path from node A to node F. Pause the video and answer the question. So if you have carefully followed the procedure that we have discussed in the video lecture the final matrix that you get will be something like this and the value if you see the graph and the values from A to F will be 10 where A to F is A to B is 4 and B to F is 6. So if you add up these two values 4 plus 6 you will get 10 which is the shortest path from node A to node F. So this is the summary of the video lecture all pair shortest path provides the minimum distance between any pair of node in the weighted directed graph. The algorithm can also deal with edges having negative weighted having with graphs having negative weighted edges and the final cost adjacency matrix while computing the minimum weights gives us the minimum distance between the nodes. These are the references that I have used. Thank you.