The Weekly Dev - 202319

Make Fast Calls to Microservices

Out of the discussion on whether microservices are good or bad for you, there is another point to be made: maybe if you have a couple of microservices, having them communicate on a sloppy json sent over as simple text on a HTTP request is not the best solution.

It could be that you need to keep it simple, and then it's okay (while I don't see a microservices architecture as something inherently simple...).

But it could be that you make a lot of calls to that microservice, and then small inefficiencies make for a big gain, if you're willing to go for a more efficient way to call them.

Yes, the complexity is not free, and you still need to decide where to draw the line.

Long story short, it could be that gRPC is what you are looking for.

Writing a schema is similar to a graphQL definition, but instead of a childish console, what you get here is a binary efficient marshalling solution for inputs and outputs based on protobuf.

Also the support for programming languages is quite wide and robust, see: here

API Development

A command-line tool that lets you interact with gRPC servers.

Basically curl for gRPC servers:

grpcurl

Discussing how to use mutual Transport Layer Security (mTLS) to secure communication between gRPC services. The author explains the advantages of using mTLS and provides step-by-step instructions on how to set up and configure mTLS in a gRPC application. The article also covers common issues that may arise during implementation and how to troubleshoot them: Securing gRPC service-to-service communications with mTLS

Apache Calcite Tutorial provides an introduction to Apache Calcite, an open-source framework for building data management systems. The author explains the basic concepts of Calcite, such as relational algebra and SQL parsing, and provides examples of how to use the framework to build custom data management systems. The tutorial covers topics such as building a JDBC driver and creating a custom SQL parser. The article also provides links to additional resources for further learning.



[security] [api] [git] [programming]