Posts

Tracing the API calls in Your Helidon Application with Jaeger

While building applications that comprises of multiple microservices, it is essential to have a mechanism in place to collect and analyze the details of API calls, timing data needed to troubleshoot latency problems and logging error generated from API calls. Jaeger is one such solution and used for monitoring and troubleshooting application built following microservice based architecture with following capabilities:Distributed context propagationDistributed transaction monitoringRoot cause analysisService dependency analysisPerformance / latency optimizationJaeger is hosted by the Cloud Native Computing Foundation (CNCF) as the 7th top-level project (graduated in October 2019).
Eclipse MicroProfile, OpenTracing and Jaeger
As there are multiple tracing solutions out there similar to Jaeger(such as Zipkin), it is really good to avoid vendor lock-in by having some standardization around APIs that work with different providers.The OpenTracing addresses this part of the problem, it  a vendo…

Integrating Redis with a Helidon MicroProfile Application for a Publish-Subscribe Usecase

Redis is an open source, in-memory data structure store, used as a database, cache and message broker. In this short post I am sharing a simple application that show cases classic integration of Redis message broker(pub/sub) APIs with a Helidon MicroProfile application for message publish-subscribe use case. You can checkout the source form here: https://github.com/jobinesh/cloud-native-applications/blob/master/helidon-example-mp-redis/README.md

What is the usecase exercised in this example ?
It is simple :) We use the a simple greeting REST API  to exercise the Redis Publish Subscribe feature. When a client updates the greeting message, the Greeting resource implementation will publish the new greeting message to Redis channel topic for use by interested parties(consumers)

Who does what?
Here is quick summary of the classes that you find in the source:

Lettuce: This example use Lettuce client library to connect to Redis server. If you are new to Lettuce, take a look at the following res…

A Simple gRPC CRUD Example Running on Helidon SE

This is in continuation of the my previous posts on gRPC CRUD Example with Java. In case you have not read them yet, here are the links - Pause here, take a look at those posts and then resume ;)

https://www.jobinesh.com/2020/01/a-simple-grpc-example.htmlhttps://www.jobinesh.com/2020/01/a-simple-grpc-crud-example-with-java.html
This post shares a simple and complete gRPC CRUD example that runs as Helidon SE microservice.  The gRPC service generated using stdndrad approach as we discussed in previous posts. However the this example runs the gRPC APIs on Helidon SE service ;) If you are interested to see how the Helidon SE embraces gRPC service implementation that we have, see this class: HelidonSEServer.java in the example project. As a bonus we can leverage the built-in Helidon SE offerings for monitoring and tracing the gRPC APIs. For instance the following URL gives you health check info for our example: http://localhost:8080/health

You can find the complete source here: https://git…

Disclaimer

The views expressed on this blog are my own and do not necessarily reflect the views of my employer.