Saturday, July 04, 2020

gRPC + Postman?

gRPC + Postman = Jason Newman - Medium

... complaints from our transition to gRPC has been the inability to use Postman for our gRPC services. The existing tooling has not met the ease of use the Postman providing for interacting with our traditional REST APIs. We have tried the gRPC CLI, grpc-gateway, and omgRPC

one solution:

adding a JSON codec to gRPC servers. While amazing, it wasn’t initially clear how this could be used to improve development workflows, especially given the reluctance of Postman to support HTTP/2 and the required binary header for the gRPC payload (whether a protocol buffer or JSON payload).

proof of concept proxy which handles the protocol conversion from HTTP to HTTP/2 and also calculates and inserts the gRPC payload header. On the response , it trims the header off of the gRPC response and converts the gRPC status code to a HTTP status code. The introduction of this proxy allows us to once again use the incredible collaboration and templating features of Postman with our gRPC services

jnewmano/grpc-json-proxy: gRPC Proxy for Postman like tools

uw-labs/bloomrpc: GUI Client for GRPC Services

Intuitive CLIs for gRPC APIs - YouTube

Postman: API Development with Abhinav Asthana - Software Engineering Daily

Postman Company Profile - Office Locations, Competitors, Revenue, Financials, Employees, Key People, Subsidiaries |
valuation: $2B
funding: $208M
employees: 265

"Postman is a company operating an API development platform. It provides executable descriptions of an API, workspaces for team collaboration, and built-in tools that enable developers to run requests, test, debug, create mock servers, monitor, run automated tests, and document the API."

API platform Postman delivers $150M Series C on $2B valuation | TechCrunch

Abhinav Asthana | LinkedIn

GoLang is boring and efficient...

Go is Boring...And That’s Fantastic! | Capital One

Building a high performance JSON parser

Golang Weekly Issue 319: July 3, 2020

HW improvements are getting slower

When you look at single core performance, the fastest 2019 Core i9 is less than twice as fast as the fastest 2011 Core i7. Instead of getting faster, we're adding more cores to CPUs. When you look at multi-core performance, it's a little better, slightly more than 2x faster.
  • It’s not just CPU performance that is limiting us. Forrest Smith wrote a fantastic blog post on the impact of RAM and RAM access patterns on performance. The highlights are:
  • RAM is much slower than CPUs, and the gap is not getting better, even though CPUs aren't getting much faster.
  • RAM might be random access, but if you actually use it that way, it's slow. You can read around 40 gigabytes per second from RAM on a modern Intel CPU if the data is sequential. If you do a random read, it’s a little less than half a gigabyte per second.
  • Code with lots of pointers is especially slow. Quoting Forrest: “Sequentially summing values behind a pointer runs at less than 1 GB/s. Random access, which misses the cache twice, runs at just 0.1 GB/s. Pointer chasing is 10 to 20 times slower. Friends don't let friends use linked lists.” Ouch.