Hi, folks, there is good news for those who are using the Google AppEngine ( and I’m writing as a java developer ).
People already using AppEngine or know about AppEngine can skip this paragraph.
Google AppEngine: Google AppEngine is a Platform as a Service and cloud computing platform for developing and hosting web applications. ( aws-elastic-beanstalk equivalent of Google Cloud platform ).
I have been using the AppEngine for the past 3+ years and it is good cause we don't have to manage the infrastructure and or no need to worry about the downtime. Google will be taking care of that for us.
Here I'm talking about something that was not( officially still not ) available in Google AppEngine Standard environment, I'll list something that I felt important.
*) We can't do Nonblocking I/O
*) Threads ( Yup!, but there are alternative options for async calls provided by GCP)
*) GRPC ( AppEngine uses the jetty server, that is the answer )
Let's talk about good new now?
On Sep 2018 Oracle released their latest LTS version Java 11. with a lot of updates and after 9 months Google Announced that the Google AppEngine Standard Beta version will support java11.
I guess it will be a regular update from AppEngine and the existing limitations will remain the same. But After checking the Announcements it is quite surprising. Google decided to give more freedom the Developers. (YES!).
I read the following lines in the documentation where I get excited more
You’ll also find some changes in the Java 11 runtime. For example, the Java 11 runtime does not provide a Servlet-based runtime anymore. Instead, you need to bundle a server with your application in the form of an executable JAR.
I have tried bundled up Spring boot in the older version by changing the tomcat jetty container and it worked well. but I still the limitations was there. but today morning I decided to try with the netty server, Nonblocking I/O and threads with AppEngine. and it worked as expected.
I have created a GitHub repository to check how to use the java11 in AppEngine with Micronaut ( which has the netty as default server ) https://github.com/saifali40/micronaut-gcp.
I tried the following :
To use thread I used the ParallelStream and none I used the Flowable (RxJava ).
If people are interested to see how the GRPC works, please post your comments will write about that in Next Article.