What are the advantages/disadvantages? (gRPC vs TCP/IP vs HTTPS)

I have been wondering for a while, what are the advantages/disadvantages between the various ways of connecting to a vault?

Do any of the connection methods come with any feature differences (security, functionality, etc) or perhaps even major speed/latency improvements.

I have not had the option to test gRPC yet as I am yet to understand how to set it up to pass through our pfSense firewall with haProxy :D

So let us find out, which way should clients really be connecting to the server!

Parents
  • Short answer: If possible, use gRPC as it is a future-proof connection protocol.

    Longer answer: gRPC should be used when possible, but setting up a gRPC environment when there's a proxy server in front of the M-Files application server requires expertise in that particular proxy solution. We don't currently have extensive documentation on setting up such an environment and some details are of course dependent on the used proxy solution. gRPC works over HTTP/2 so IIS cannot currently be used as a proxy as it lacks this support as far as I know. That's why RPC over HTTPS is still used also in some new on-premises environments. Vaults on the new M-Files Cloud will always use gRPC for the communication.

    At least in theory gRPC can provide performance benefits over the other protocols but I haven't yet seen any data from real-world setups. My gut feeling is that there isn't a noticeable difference currently.

  • On the recent partner conference it was mentioned that some upcoming functions will only work with gRPC. I did not notice exactly what it was, but apparently that is the way we are headed. Have included gRPC settings on all installations that last year just to be prepared but have not seen any noticeable difference so far. Have been lucky not to encounter situations with proxy servers in front so far (except for my own, where I am not able to forward gRPC calls to other than the primary server.)

Reply
  • On the recent partner conference it was mentioned that some upcoming functions will only work with gRPC. I did not notice exactly what it was, but apparently that is the way we are headed. Have included gRPC settings on all installations that last year just to be prepared but have not seen any noticeable difference so far. Have been lucky not to encounter situations with proxy servers in front so far (except for my own, where I am not able to forward gRPC calls to other than the primary server.)

Children