gRPC Update with Irina Scurtu - podcast episode cover

gRPC Update with Irina Scurtu

Feb 08, 202449 min
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

What's the latest with gRPC? Carl and Richard chat with Irina Scurtu about her latest work with gRPC. Irina talks about the improved tooling with gRPC, including tools like Postman to help you see what's happening in a gRPC interaction, even decoding the binary data! The conversation also digs into the complexity of metadata with headers and trailers and the challenges of supporting multiple platforms and multiple type systems - but it works if you take the time to learn the details. And the results are fast and flexible communications!

Transcript

How'd you like to listen to dot net rocks with no ads? Easy? Become a patron for just five dollars a month. You get access to a private RSS feed where all the shows have no ads. Twenty dollars a month. We'll get you that and a special dot net Rocks patron mug. Sign up now at Patreon dot dot NetRocks dot com. Welcome back to dot net rocks. This is Carl Franklin and this is Richard Campbell. We're here in our respective studios. I saw you on Windows Weekly yesterday. Oh yeah,

you watched the live stream of that. I did, So tell me what you're doing on Windows Weekly besides you know, stirring up hat and discontent and whiskey. Yet I mean, in the end, I've come to appreciate that Window. This all happened because Mary Joe Foley left zd net. She went to work for Directions on Microsoft, which is an analyst group mostly ex microsofties, and she's really their sort of lead writer organizer, does the blogs and

things like that. She super loves the new roles like super Happy, but Windows Weekly was intmpatible with that, and so Paul and Leo were doing it on their own for a few weeks, and Paul was so sad. You guys are buddies from way. We've been buzzy for a long time. And so I came in and guested a couple of times, and actually it was Leo. He said, like, what are we going to do to make it permanent? That's kind of how it worked with you and me and Dot

Rocks. Isn't it that you were Richard the toy boy? And then it's like, you know, how about Yeah, that's very cool. I really enjoyed a conversation. It was great. Yeah, you know, Paul is a prolific writer, like a dozen articles a week. It's insane, and in a lot of ways, the show is basically going over what Paul's written that week, which is fine. You know, I'm familiar with most of the subjects. I have opinions, and it's easy to make fun of Paul.

And then they added the you know, MJ used to do this closing bit on her malt liquor of the week, her beer of the week. She has, like her craft beer. So they asked if I could put something there, and it's like, how about brown liquor? And of course he's never forgotten you and I And he refers to this day as the Bourbon Brothers going up there after a build and they cracked that abler abunda the cask string. Oh my gosh, yeah, that stuff. He was gooned by

the time we were done. Yeah, they ran a couple of clips of that day right where I think Paul said something along the lines of I feel like I've been shot in the tongue. Anyway, So every week now I do a different thing on whiskey, and they'd been clipping them and picking him into a playlist on YouTube as well, including over eight parts I described Scottish whiskey creation in detail, and if you can buy those eight bits together two and a half hours. So basically, there's a two and a half hour

geek out on making Scottish whiskey out there if you want it. So you sent me a link to the live recording. Yeah, but you guys don't publish a lot a live recording. You publish an edited recording, right, Yeah, Yeah, they publish a podcast essentially. Yeah, but yeah, it's still it's just that they also stream it in some respects, and like every podcast, they're struggling financially Yeah. So they where they used to literally

have a twenty four hour stream with inter socials and stuff. They've cut that back to we just stream their recordings. Well, it's really fun, and I encourage all the dot ne Rocks listeners to go check out Windows Weekly, just google it. It's at twit dot tv and you can get more Richard Cammell that way, let's let's get into better no framework. Awesome, All right, man, what do you got? So a friend of mine said, have you seen this? It's a YouTube channel YouTube dot com slash at

Jim Browning. Jim Browning is a is a faux name, a nom de plume. This is an anonymous guy who finds scammers. Oh yeah, and and confronts them and in some cases gets them convicted. Yeah, so tracking and identifying scammers who knock on my front door, call me or shove pop ups onto my computer screen. Yeah. And there's a series of amazing videos here where he does just that. Yeah, I know. And he's been

like literally unraveled a huge scam group in India. Like it's amazing, it's remarkable the work, But there is a certain amount of just the shoden froud of the scammer being scam Absolutely, I love it. You know, schadenfreud is the perfect word here. Yeah, so anyway, I really do appreciate that. And I have also noticed, and you may have noticed this, and I'm going to bring it up on security this week later today that if you have any kind of Facebook page, not a personal page, but a

Facebook page, a business page. Irene is already nodding her head. She knows exactly what I'm talking about. There's this scam that is going on where people send you, you know, instant messages, Facebook messages saying they're representing Facebook and your page is about to be shut down for some copyright infringements or

whatever unless you respond to this, and blah blah blah. And at first it really confused me because it was very you know, official looking, and then I noticed I was getting the same message from like Bob and you know, Ahmed and all these other people, and I'm like, okay, this isn't real. Well, and the accounts get deleted pretty quickly too, right, Like, yeah they do, but I mean, talk about shadenfreud. I just have a strange urge to reply bite me. Yeah, you know,

don't, don't. But don't. Don't do it. Yeah, don't you don't roll around with pigs. Not only will you not get anywhere, but the pig enjoys it. Well. Dottna Rocks has gotten just a spate of these messages. So if you're any of the people who sent them to me, bite me. And Franklin Brothers Band, another page that I have has gotten slews of them, Like I'm talking maybe thirty forty of them. Bite me, bite me, bite me. Well, and you imagine,

when you're not a technical person, just how freaky this must be. Like it must be effective. But it speaks to the state of spacebook, isn't it. It's just a cesspool. Now. I like Spacebook better than Facebook. Actually that's a really much better word for it. Yeah, because it's out and outer space sometimes you would hope. Eh. Anyway, that's what I got. Richard who's talking to us today, grabbed a comment off for show seventeen ninety seven, which we did back in June of twenty two with

one erneus you Tube. Maybe you've heard her, never heard of her? Yeah, And oddly enough we were talking about gRPC, who would have funken anyway. This comment comes from codepouter otherwise known as Richard Rukima, who's also been a guest on the show back in March twenty two and was also a student at Codena Castle in Tuscany. Oh, I didn't know that. That's awesome. Yeah, he came to Tuscany. It took me a while to

figure out who he was because I've never seen him in person. Yeah, yeah, he could get him, get him out of character, right, What a great guy though, And he's in your neck of the witz. I think, yes, somewhere nearby, not too close. I have deble check, but it might be in said Alberta. Anyway. His comment is in reference to gRPC, where he says you might want to review proto buffers. Yeah, for tro RPC and developers, and specifically the dot net library

for proto buffers. I never understood why I should create a proto buff file to describe a message in all the languages from a dot apps which uses my ap API for my application. So it's just one of those utilities. And I'll include a link on the show to dealing with idiomatic dot Net with the protocol buffer's library. So yeah, we went over at gRPC and Blazer in the masterclass thing, right, and so uh yeah, protobuff is just part of the thing. That's the protocol that gRPC uses. Yes, it's the

way to go. So, Richard, thanks so much for your comment. I'm pretty sure you get a copy of music Code by but ping me anyway, and we'll hook you up. And if you'd like a copy of music Code buy, write a comment on the website at dot NetRocks dot com or on the facebooks you publish every show there, and if you comment there and everybody on the show, we'll send you a copy of music Go buy. And you could also send us a tweet or an x or whatever the hell

they call him these days. I'm at Carl Franklin, He's at Rich Campbell, or you could be like all the other cool kids and go to mastonon I'm at Carl Franklin at tech hub dot social, and I'm Rich Campbell at Mastodon dot social. Send us a toot or tweet or an ex or whatever the bleep you call those things now. Yeah, it'll always be Twitter to me. I'm sorry, Elin, Yeah, I'm okay with that. You You're evil. Plan is not worth really that story? Yeah, no,

okay, I'm not sorry. I'll say it like my wife, my wife Kelly, she has a habit of apologizing for no parent reason, you know, anything. And so she's realized this and now she says sorry, not sorry, fuck you constantly. It's the cutest thing. That's pretty good. She can't stop the reflex, but she can follow it up. She's right, exactly. It's like a napid thought. And now it's just becoming one of those family things. All right, let's bring on Arena back for more.

Arena Skirt two is a Microsoft MVP for Developer Technologies, the Software architect, an independent consultant, and Microsoft certified trainer, always in a quest for the latest trends and best practices in architecture, dot net and the world around it. Also having more than two thousand hours of delivered trainings, classings,

workshops and presentations, she loves to help others grow. Twice a year for five months, she teaches dot net and c sharp to people that either want to switch careers and get into software development or simply learn new things very very cool. She tries to lead by example and believes in the importance of growing

tech communities. She is the co founder of dot net Yash user group that's I a SI Yash of course, and dot Netdays dot ro conference where she tries to gather people that are willing to share their knowledge with others or gather around in the community, and from time to time she publishes articles on her blog Irena dot codes awesome domain there codes. I got to look into that, Carl Frank, Oh, yeah, welcome back. Thank you for having me. You're welcome. Great heard of this dot Net Days dot ro.

I wonder why, all right, tell everybody come on, I'm coming to Yash. I'm gonna come. Yeah, I'm going to Yash. I've never been. I've been, you know, I've been to Cluge, I've been around Romania, but I've never been. I've done any Yeah, I haven't done gone to Yash. I'm like, I got to go to Yash. I don't know that I'll go to Moldova while I'm there, because it's very close to Moldova. But it's kind of a sketchy time to go to Moldova. Right now, I have a yash on my wrist and you put a

little ointment on it and it's going away. So we're talking gRPC here. It's been a spell more than a year last time we checked in, and and you've been writing new course words, stuff like there's more to no, right, yeah, there's more to know and the technology is well well established. No, no, so it's in the last year. There's been some innovations in gRPC, more stabilizations, if that's a word, now I get that. Yeah, so gRPC is here to stay if you ask me.

And we're really talking gRPC web, right, because that's what most developers use. Is that true? No, No, we're talking gRPC like back end technology, okay, for server for the server bit server server, yeah, micro services, yeah, okay, so gRPC web obviously for browsers. So it started at Google. But they claim that gRPC is a recursive acronym called gRPC Remote Procedure Calls and so if you go there, gRPC io, that's

what they say. But they built it for, as you say, micro services, you know, service to service kind of interaction which doesn't require HTTP. Where they built it to fool people that a distributed system is the monolith. Like the way they are behaving. The g doesn't stand for Google. It used to, they claim it doesn't now because they opened it up. I think you know, it's just kind of a wink wink, you know. Yeah, it's just active re you know, re acronym, yeah,

reassigning. Yeah, that's pretty funny. So what's new? So the tooling is new and stable, which makes me, uh, very glad that well Visual Studio caught up with everything that happens in RPC, so now you don't have like problems with types not being recognized and stuff like that. Okay, awesome. Uh. And also you have like an option in Visual Studio right click at reference and you'll search and find the proto file and it will automatically

install some packages for you. And that's awesome because we want straightforward things. We do not want to remember what packages we need to install. And there's a bunch of them in for the different places too. Yeah, you talked about types when you when you generate a client or a service, you have to define these types in a in a protofile, as Richard Rukumo was saying. And those types don't you know, if the the actual types like string in whatever. Some of them map, but a lot of them don't.

And I always find it difficult if I'm doing anything complex to well, nowadays I ask chat GPT, but usually I would go browsing for it. Uh. You know what is the proto type that matches, you know, a double array or something like that. Well, basically they they try to help us with something that is called Google well Known types, which is the common ground between all languages out there. But if you need something specific only for

a specific language, you'll have to mimic and code it yourself. In broad above. Yeah, you create your own message type that has whatever. Yeah, I mean the doc liarly says protocol buffers well known types. Yeah. Yeah, I presume as soon as you go off this list, now you've got to figure it out. Yeah, but this is what proto buff's all about, right, Yeah, it's not a language, it's a code generation

template really yep. So basically the fact that we're writing and defining the services and the types in proto buffs and it makes us understand the new syntax and new types and all. It's overhead for us. But you can also have the option of starting with your own existing types and feels like code first gRPC due to a nice library written by Mark Gravelle, which allows you to reuse if you have WCS for example and you have types that are adnotating with data

contracts and stuff like that, you can get rid of proto buffs. That was one of the first things that I wrote as well, and I showed it on Blazer Train. Back when I first learned gRPC. It was like, well, what if I've already got, like, say, an API layer, I've already got my types and I have to redo them and now I've got duplicate code and all that stuff. So, yeah, it's a smart idea, just you make a code generator generator kind of. I'm sorry

when you say it that way. It doesn't feel like a smart idea anymore. I know, it's weird. It's a lot of weirdness. Yeah, but there's a problem. There's problems there because you have to you know, every time that you get a call or a bunch of variables, you have to convert them in the service, right, so there has to be stuff in there that runs at run time, and you know, you have to

take into account all the types. It's a lot. Yeah, but basically, let's be honest, we all kind of use basic types with our other types custom ones. So as long as those are like interoperable where they can work with NOGS or something else. Sure, Yeah, back to why do we build types? Why do we do this? How does this really save us pain? It is just because it's easier to pass in APIs. Basically, once you start with gRPC, you have one source of truth, or

you should have, like this protocol buffers file. And the point of gRPC, beyond the fact that it uses a binary serialization, is that now you can have a c sharp consumer that talks with an OGS server and the only thing that these two have in common is that protocol buffers file. That You're right, right, And that's kind of the magical part about it is. Yeah, this is cross platform without WS starring a whole lot of XML.

Oh yeah, and performance is amazing. I mean I did some comparisons using gRPC web in Blazer to download five thousand records from an API and then from gRPC, and it was like the second and a half compared to like two hundred and fifty milliseconds. It's that different. Yeah, and that's on the same sheme. But still, I mean, that kind of ratio is what you can expect. And yet how is the adoption arena, Like I still don't see the huge amount of tractions For gRPC, there isn't a huge amount

of traction. What I'm seeing in my workshops and at the conferences, I'm hearing people talking about transitioning from WCF to gRPC. Right, this is the most common scenario, and simply because they want to get to Core. Yeah, and WCF is not going indeed, and nobody's waiting for the open source version WCF exactly, and why would you Anyway, there's a whole lot of pain. I don't know if you guys remember, but uh yeah, configuration

nightmare, that's what I remember. That's why you guys, guys like the Germans, you know, Angle Grammar and all those guys who were into WCF, they made the fortune on helping people configure their WCF services well. And it also appeals to the mind with that kind of precision, like as long as you do it right, it works great. The moment you do it wrong, it's essentially undiagnosable. Yeah, I get that. Where gRPC seems

way more stripped down. It seems like the best part of dot net remoting, which I loved, like dot remoting between two dot net services back in the day just worked like it was nothing and it was fast form work with anybody else. No, So then they say, hey, you know what you like more soap? They were wrong, they were wrong. That was a lie. Soap did not clean anything what they were thinking. Yeah, it wasn't simple, it didn't have any objects, it didn't provide access,

it wasn't a protocol. The name was perfect. Oh man, I could do this all day. So I know that you're, you know, peer to peer in the micro services world, so you're not really using the HDP web version of it. But I was following the the way that what is to your what's the deal with HDDB two and why didn't something work? And does it work? Now? I'm sorry for being vague, but I just remember that there was a problem with maybe Azure not supporting HDP two or and

that's why gRPC web came around. I don't know, something like that. I mean, they added grbc into like dotnut world in twenty nineteen, but Asia wasn't supporting that until I don't know last year or something. So it has been Oh yeah, it has been a gap around it. Yeah, that's what I remember. And it's not like HGB two is new. We were using it it's strangely, for crying out loud, now they're talking HGDP three. Yeah, so it's not even new anymore. HGB two is implemented

in twenty eighteen in the Azure App Service. Yeah, so it's been a few years. But still they didn't get to it soon. No, I don't know why. Yeah, it's we don't We don't know the cloud problems, and we don't want to know the cloud problems. Oh yeah, cloud, those are hard problems. I don't envy those guys and our browsers using HDTP two now, yes, they are since when for a long time, for a long time, because it was easy, relatively speaking. Work on

the server was the hard part, right, and it was. Yeah, twenty fifteen was when it was ratified for twenty eight for browser side. Okay, So the fact that it took three years for Azure to get it going just on app service, like they still got to do a fund more and all those other pieces like that makes sense to me. But you know, we were battling that ressulcilationship with twenty thirteen, and one of the one of the reasons you used, strangely it was that it did terminate HTP two for

you. So these are little bits of information that have fallen out of my ears, and you know, you don't want to know this stuff like that's just it. It's it's not a story worthy, you know. Yeah, this is the plumbing that makes the Internet go around. Like once upon a time the web was just not that robust and having two connections to a web server was a lot. So has the performance or scalability of gRPC improved over the last year. I don't know about it being improved, but I just

recently wrote a blog about hosting in Asia and it was so simple. I was like, okay, no, no wonder that it took like three years for you to get app service and gRPC workable with each other. So it's very nice right now. Oh good, So again you're talking too ling as your support. All of those things have. It's come into its own. I don't know why gRPC isn't more popular because it's certainly it's certainly so usable in just about every scenario where you have communication. I think it's hard.

I mean, once you have if you have a green field app where you have services that need to talk with other downstream services and you need some kind of I don't know request response scenario, then it's fine. But if you have a huge application that it's already well established, it's hard in terms of time to retrofit, so it will be a while. Yeah. No, no. And if you're used to living in a land and then you just poorted that up to app service, like you haven't really embraced a different view

of the web. You still kind of an iis person, yeap, And you havn't grasped these ideas of reverse proxying and all of the other mindsets that other web approaches, you know, not coming from dot Netland, not coming from Microsoft Land, embraced years ago. So you know, I still feel like we're playing catch up in a lot of respect. You know, the day I shut off Internet Information Server was the happiest day of my life. Dude, dude. You know, I sent both of my old servers to

the e cyclers to be torn, you know, taken apart. And that was a good day. That was a good I am now purging all racks out of my life. I want to see it getting shredded. I'm not leaving until I see it shredded. Well, I shredded the drives and then shut the chassis off. But the motherboards were for twenty thirteen. I didn't owe anybody anything. I was on my third set of fans in those things.

But now I'm with you. You know, it's a cloud world like less less is more at home absolutely, Plus you know, never mind that the security implications of Internet information. Everything's on by default and yeah, yeah, it's the it's the Swiss army knife with all the blades out right. So what have you been doing in your day to day life with gRPC? That's interesting arena basically helping teams that want to transition from w CF to gRPC.

That's the most common center that I've found. I currently try to keep an eye on it just because they have some bits that really interest me. And when those bits will be established and mature enough, I think it will generate a lot of traction in the industry around gRPC. And I'm talking about gRPC transcoding, especially Oh you said the T word, Oh yeah, all

right, tell us transcoding. So transcoding is a package that you can install and allows you to also call your gRPC service from the browser as you would do with any other HTTP API. But and it does the translation from Jason that you send in the browser to your gRPC service. Now is this different from gRPC web kind of? I mean the thing, yeah, accomplished is the same thing, indeed, But it allows you from the browser to also

specify endpoints and to define like routes can bind variables from the routes. You can have body that are bound to different models that you have as a parameter in your gRPC service. So I don't power it's yep, indeed, But now there's a lot of manual work that you need to do in order for that to work in a basic scenario. And what it happens currently is that if you have like an integration project or a unit testing project for your gRPC

service, and you also want to add transcoding, bad luck. So nothing will work anymore, no gRPC for you. Yeah, so take your mind off of it, don't go that way. Yeah, things will be hard, and we should take a brief break. Yeah, let's do that. We're gonna pause here for these very important messages and won't be right back, and we're back. It's dot net rock some Carl Franklin, that's Richard Campbell, Yes, sir, and we're talking to Arena skirt you about gRPC.

What's new in the last year so far, it's tooling and Azure support and training. I don't know if trans coding is new. It's not necessarily new. Now it's like way better, way better, right, improved, yeah, improved yes? And uh and the WCF problem that's uh, well, this really comes to that core issue, like you're doing all these migrations. What are the typical problems that a dot net dev coming from WCF have trying to understand g RPC? Like where what do you find? You're explaining over

and over again. So I think the general the I think the concept of gRPC itself, the fact that it resides and lives under the HTP two protocol and you have these small requests that travel on one single connection. That's the hard beat that developers don't understand at first. And then the fact that you have like different set of heathers poor gRPC requests. You have that concept that is named trailers that comes sent as a response from the server at the end.

So there are a lot of new concepts. Yeah. I mean you literally call it headers and then call it trailers. Yeah, and you work with one type for both of them. So a dictionary, right, same? Yeah, So I mean and the point being there called trailers because they come after the data. It's the head of the data. But the type that we you were you use in order to actually add key value pairs to those trailers. It's a metadata type that you can also use to add headers

that goes before in your RPC requests. So yeah, it's just a naming problem like the seam streets forward. And yet the words are complicated. It's not the first industry to you confuse headers and trailers. Think of movies, right, right, you see a movie trailer is your introduction to the movie? Why is it called a trailer? It should be called a header or

an announcement. But it turns out there's a reason for that because they used to show these double features and days in the theater, and the trailers for the next movie or whatever would come after the first one, right, And they just never changed the name. They just never changed it because it's a word and everybody knows what it is. Right. So but the point I think this is your point arena is like if you work in gRPC metadata,

it's going to generate the headers and the trailers as needed. No, it's basically you add some extra concepts to the concept that you already know. Like the h protocol protocol it has headers, right, so you can add key value pairs in there. But underneath these you also add key value pairs that are specific to a gRPC request. And depending on the part where you're adding those with the gRPC request or with the gRPC response, they're called differently,

right, So so the header of a response is called the trailer. Yeah, no problem, it's fine. I take off my parachute and okay, I get it, and it is all metadata. So it is good to think in the context of metadata. Let me tell you about the package I want to send, and yeah, some stuff's going to go up front, some stuffs going to go back. It doesn't They don't get too sweaty about

that. And even though it's weird due to the fact that this is implemented, it's very helpful because you might have things that don't fit in the message body basically and the request itself, so you have to have a place where to shove those so well, and I appreciate that you don't have a separate set of calls for the header and the trailer and so forth. You just speak to metadata and you can do all the things. So in a lot

of ways it's simple. It's just describing it well. It feels challenging, right, But there's also a nuance here if we're talking about different gRPC modes, like when we have the server streaming the server streaming modes or types what sends several GPS responses back to the client, But only after all those messages are finished are sent, you'll get those trailers, right, So this is the way you'll you'll know that, Okay, I'm I'm done, I received

all the responses. Here's the trailers. Yeah. Again, it's like the issue here with gRPC is that it can be a lot of different things. It can be you know, a synchronous streamer or just a messaging and so the rules are different. So yeah, you gotta be careful about using trailers and streaming mode because you don't know when you're going to get them. It could be a while. Yeah. Yeah, I like to use gRPC in place of you know, rest API calls to controllers in a regular application,

you know, in a Blazer app for example. That's I really love it and of course, it wasn't meant to do that, but it works. It works great fast, and yeah, I mean it's interesting you say that called that it wasn't meant to do that. Yeah, it wasn't built for that. What is gRPC meant to do? Like, it's not just about streaming either. Well, I mean, and we'll take that. I mean it was built for micro service communication, service to service. Yeah. I

mean we can start like with a short history. How many of us heard the term micro services, like I'm developing micro services, the team develops micro services, when in fact those are not are just services that respond with Jason. Yeah, and they passed that data to each other with Jason. Yeah. So people defaulted to something that is so called REST, like to describe an API that responds with Jason as a data foremant, right, which made

all the rest people angry. What I remember about REST is mostly hearing I was doing it wrong. I have so many beefs, and when we were talking to Grant Barrett about this, I have so many beefs with people who use the wrong word for things, and I just got to learn to let it go and let them play on my lawn. It's going to be okay. You know it's going to be okay, but I still have some Here's one when people describe the Browning Milliard reaction that they get on meat, they

say it's caramelizing. No it's not. It's not caramelizing. There's no sugar in me. Little things like that. But people get a word for something, and you know, it's popular, and so then they overuse it and they put it on everything, and it's rest and the RESTful, which is a nuance. I'm happier with rest dish. I'm not going for perfection your voice. I'm just trying to get my wrap to work. Rested, well rested, it's well rested. Best to keep it simple. Yeah, we

should just start making up things and asking people on the show. So how long do you let that proof? Well? I use the oiling library oiler and then I wrap it, oh man, and then it's only proofed when doubled, and then you go, you bacon, let it icd to bake a bit ye down the pipeline to the bank. Yeah, we're making work way way too an extreme that I really enjoying. This all started with the metadata conversation in this naming problem, and now we've promptly painted a worse one.

You know, I'm presuming that the folks who wrote this, we're trying to do a good job. And it's still you know, there's some challenges here. Yeah, it's a technology that needs to mature, and it will mature enough when people will use it, because otherwise it's just a tool out there that nobody uses and no one will invest in developing it. Yeah, and can you make it simpler? Like it does feel like gRPC is mature enough that we are looking at some simplicity down to the tool links better.

Yeah. Yeah, I think we're we're getting there. It is taken a while. Oh yeah, I mean there is a reason for it took for it to took that amount of time. I mean there was no support in Asia. I don't know about a WS, but the only moment where you could use RPC in a real production environment was if you had a virtual machine where you can't run the service. Yeah. I don't really know how many people are doing that anymore. Yeah, that's not a reason to run a

VM. Reason running VM is you're trying to get you know, you're on your way off of it. Not that I'm building new things. I need a VM for it. I fairly enjoyed a moment where I had to run APIs as Linux services right machines start though, see what's happening. I was very excited to do that. That's a good way to slow people down from running a VM. You can run a VM, but only if it's Linux. I had to learn if your commands linux pseudo, make me a sandwich,

Pseudo, make me a pseudo? What are what is server reflection and how does that play into all of this? So server reflection will allow you to discover what Jersey services you have available inside an endpoint services operations in fact

and the tooling. I'm going to talk about tooling, especially about Postman in here, because now it allows you to have like an ur L of the service and your server reflection, and if you have reflection enable on the server side, it will discover what can't you with that swagger for GRPs kind of kind of yeah yeah, And you can also execute those because Postman will generate messages for you domulance, but you can use those in order to call those

operations. Nice. Would you use discovery in production or is this really just a tool when you're developing to make it easier to get hooked up. I think it's meant to be used with an API gateway or something like that, right, so sort of a self service discovery. Otherwise I don't see the point too like, I mean, I think it kind of should know your end points right right, and never if you have with this whole we don't

know where end points are. Yeah, No, because it's g RPC is meant for point point communication, and that assumes that you know where you will make requests and what should look like. Yeah, because you have the protocol buffers, files and types that describe basically what you have available. Now you're twisting my brain. It was like, am I going to generate the proto buffs on the fly because I've used discovery to making right now just because you

could do it? Yep? Yeah, all right, I mean, but I appreciate you want something discoverable, you know, nothing else, just to spit out an error message, right you have a I don't know. This has been a thing for me lately. I kept trying to write a better error message because object not found pisses everybody off. Like I kind of got this reflexed. If we made a call and it failed, then I'd like

to invoke the discovery and include it in the log. So it's like, hey, you know, I failed to make this call, but I did the discovery on it, and this is what it's actually expecting. Like you've just shortened everybody's pain up a whole bunch, right, you know, I have to go back and look. It's like at the moment when I made this call, this is what it was expecting, and this is what we

SENTENCEDEAD. Yeah, but to be here reflections So far, for me, it has been useful just to play around to discover like what's available on the path that I know, and with Postman because it allows you to like load the live RL and to see what's there and to invoke it for testing purposes of course. Nice. Yeah, and you like those tools, so it just gives you confidence of what's going on. Oh yeah, I mean I always prefer a tool where I can click three buttons to make sure the thing

that I want it to work works. Then I'll manually create a client try to debugget see what's the error if any, so it's easier. Yeah, I like that. I have a question for you, a particular question about streaming in gRPC which I've been doing for a while, but I'm not really

sure what's going on under the hood. So in your protofile, if you have an RPC that returns a stream of you know, some message type that instead of you know, a repeated message type, then when you implement that, you would think that there would be an I sink enumerable in there somewhere.

But instead what you get is the request and an I serve stream writer of your type, you know, and then a server call context and then you basically can just await you know, response streamed dot write a sink whatever your object is in a loop and it you know, I would I was

expecting an I sink numerable in C sharp. Is that's what's actually happening under the hood, To be fair, I don't know for sure, but to be fair, I don't think that is what happening under the food And I think they allowed us to have that stream reader writer because you have the both just to make it as low level as they can. Yeah. So you have this stream, your job to do whatever you want with it. Yeah. I realized this is an answer I could easily find by going and looking

at the source code and get hub. But I just wondered if you knew. I'm sorry, I'm going to air quote easily. Yeah, easily. You're right. I can. I can answer this question myself because I can go and look at the source code, cut and paste it into get Up Go. Pilots say what the hell does this mean? I can't ask chat jipity. I was just gonna say, or you could ask chat jipity. Yeah, we all went to the same thing. Give me a large language model is going to answer this question for me? Yeah? Not? Do

I trust it? That's yeah, Now it wasn't correct. How would you know? It's like it's a great summarizer. If it wasn't a great summarizer, how would you you know? Yeah, sounds good, but always search and research of the fact that chad jipt gives you. Yeah. Yeah, you can say where what what's the get up page where you found this answer, and they'll say, I have no idea where on Google? I'm sorry, this was derived from a from a mirror site on four chance, so

it must be correct. Oh my goodness. Okay, we were talking about gRPC. I mean because it's good. It's really good. As much as I think we've been hard on it today. Yeah, I know, it really is amazing. Yeah, but I appreciate tools like Postman, like, oh okay, yeah, if I was learning my way around gr PC starting to play with requests through Postman, so you can watch the interaction, that's

awesome. That's awesome. Yeah, that's good stuff and get started. And it also makes the binary human readable, which is awesome for Postman because at first that was a show stopper, like how can I a thing that is binary? I don't know how to decipher binary? So this will makes it way easier. So training is a big part of what you do. Are there any regular classes that you teach online where we could learn this stuff? Not? Up until now, I'm basically working on business to business contracts.

So there are companies if they called me, hey, we need to learn about this or that, I can provide them some trainings around it. So if somebody who's interested in how many what's the minimum number of people that you'd want to teach too? Minimum? I did it for five people because the company wanted one, right, But to be honest, I always prefer like

having a bigger group of people. Sure, so the questions are way easier to answer because from thirty people or fifteen people, you'll always find some questions that are into and they will start debates. And I always love the interaction with you put your hands back, sit back. Now the classes it's called by itself. See what I started. Yeah, but it's everybody working on one project and you can get into a discussion about the project like that's that's

good to do, yeah, without a doubt. But you also had some online training stuff too, some videos maybe oh yeah yeah, yeah, uh, forget about those. No I'm joking, No, I'm joking. Oh it was so hard to record record those. It's a whole new type, so different. Oh yeah, a different life. Yeah. So uh oh yeah it's hard. So uh big thumbs up for people that are doing this for a living or full time their content creators. And to put your cell

phone camera and to speak like coherently. Yeah, it's it's a thing. Yeah, So coherently coherence comes with editing though, you know that's the good. Yeah, if you know how to like take breaks or have stop words. And I learned that the hard way. I do that. I subscribe to the max Headroom style of editing, where everything I just jump cut all the time. Yeah. As long as you can hear me and understand me, you can put up with a twitch or two. Yeah I think that

and the hard hair. Yeah yeah, exactly my mom up. So if anyone wants to to learn more about gRPC, I have a class around four hours around g RPC from zero to Hero. You can find the link on my blog. It's there with a small discount. Excellent. Yeah cool. So what's next? What's on your what's in your inbox? To be here? In need or want to start a YouTube channel, I have a gazillion plans. Man. Oh yeah, meteor, because I said I did this, I did the course. It's hard. It might be some learning curve

for me with YouTube tool, but it might also prove useful. Well. Feel free to reach out to me because I've been doing it for a long time and if I can help in any way, I will. For sure. I'm gonna book a slot in your calendar. You got And of course, by the time this show comes out, we'll have already been to NDYC London and back again. But I will you and I will see each other in the NDC London. Yep. Very good. Anything else that we forgot

to talk about arena. Nothing that crosses my mind. All right. Well, on that note, let's call it a show. Thanks very much for spending this time with us. It's always great to talk to you same, Thank you. All right, We'll talk to you next time on dot net rocks. Dot net Rocks is brought to you by Franklin's Net and produced by Pop Studios, a full service audio, video and post production facility located physically in New London, Connecticut, and of course in the cloud online at pwop

dot com. Visit our website at d O T N E t R O c k S dot com for RSS feeds, downloads, mobile apps, comments, and access to the full archives going back to show number one, recorded in September two thousand and two. And make sure you check out our sponsors. They keep us in business. Now go write some code. See you next time you got javans My is home, then my Texes in a line. Credit ballh

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android