 Hi everybody, welcome back on another technical demo around the Quarkus application. In this video, I'm going to walk you through how to consume the reactive GRPG service with the Quarkus immunity application. So this is the second part of how to implement GRPG service on top of the Quarkus. If you don't have any chance to watch the first video, please make sure to watch the first one because it will be very helpful to understand how to implement GRPG extension on the Quarkus Flamer. Alright, let's get started. So there are a couple more ways to consume GRPG on the Quarkus application. We learned about the blocking API consumption in the demo one and we're going to talk a little bit about the reactive immunity on the Quarkus application. And you can also inject GRPG channel in the Quarkus application as well. Let's go through the demo, how it works. Alright, this is the existing application we implemented in the demo one, how to implement blocking GRPG. Let's take a look at that one more time to recap very quickly. So go to the Hello World profile file. We defined a couple more appeal options like a Java multiple files and a package name here. And more importantly, we defined service name like a GRPG and exchange a message and Hello request and reply. And also we extend Hello service based on Generator GRPG implementation base. And in order to consume and actually invoke the GRPG service, we use the GRPG annotation and also we use the stuff file, the grid of blocking stuff. And the My Quarkus application already running as a development mode and let's try to using a reflection API to make sure this GRPG is invoked. And I got the right result, Hello Daniel O. And also I tried to ask the endpoint, actual endpoint, and I got the same result, Hello Daniel O. Alright, so this application is still working properly. Okay, let's try to add the muni extension to consume muni, the GRPG service here. Okay, so we're going to add, we just add the muni extension. So muni is the reactive program library allowing to express and compose asynchronous action. So first of all, we just needed to change the service here. Let's say change the name first, the reactive Hello service. You know, we need to change the class name as well along with the file name, the reactive Hello service here. And then we just, let's try to delete the existing code and delete the extension here. So we need to extend the muni implementation base rather than the blocking. So we extend the newly and then override the new method of public, the unit type and Hello. So muni offers two types of asynchronous action like a unit. And you can have some different type of multi-item stream based on multi-stream. So in this case, we're going to use the unit types when you invoke the muni program library for reactive system. And the return object is the unit, just create a form and item. And then the same say Hello. And the item is we're going to put the Hello if right. So we're going to new build the message here. The same message came from the muni and Hello. And we're going to add the parameter name from the request add get name here. So we just create the new reactive services based on single tone CDI beans. And also we don't need to, we can delete or require an input file to make clean the Java classes here. All right, here is our research file. Let's try to change that to endpoint first. So endpoint is a blocking. Maybe we're going to change that more make it clear. So go to let's say the muni and also the method name maybe change the blocking to replace the muni, replace the blocking. And then the CDI injection, we're going to change that to reactive. We're going to use the muni stop file because we need to invoke the muni greater grpc service in this case. So muni grpc this old grpc stop file was generated automatically when you define in your Hello world profile. All right, so change that invoke the muni Hello service here and say Hello and the same request. And we need to new build the request message. And then this is on item. This is not string type and on item and transform this message to Hello reply as the return message here and get message as we define in a service. And one more thing we need to do, we change the return type. Here we use the string return type when you consume blocking grpc. But in this case, we need to muni or multi. So in this case, we already find the unit type with the string in a services. So that's why we need to replace the unit string type. All right, let's try to invoke endpoint. Once again, the recompile packaging redeploy my running on top of my running pockets here. And let's try to reflection you API first to this is totally working. So muni Hello Daniel. Okay, this is totally working my reactive grpc consumption. Okay, let's try to one more time to access the actual endpoint. The HTTP and Hello and muni and the parameter like Daniel O. So my name and it should be returned with muni Hello and comma Daniel O. Yeah, totally working. So this is the how to consume the reactive grpc programming on Quarkus. All right, just to recap what we run today. So we're going to run how to consume the reactive grpc on Quarkus application. Also, we already know how to implement a grpc specifically broken API on Quarkus extension. I think it's very helpful for you to implement reactive or traditional broken API using grpc services on the Quarkus application framework. And please make sure to subscribe my YouTube channel for the next interesting and practical example. Thank you for watching today and have a good rest of the day.