WePay Engineering is the company engineering blog of a payments firm, covering data pipelines, databases, Kafka, Airflow, and distributed systems.
HN links it for posts like Waltz, its distributed write-ahead log, and for WePay job listings, with commenters citing it on scaling problems.
WePay | YCS09 | Redwood City, CA | Senior Software Engineers, Site Reliability Engineers | ONSITE
We are looking for Sr. Software Engineers & SRE's to work on a handful of from scratch, greenfield development projects -- developing new micro-services on top of our new SOA to working on building our data infrastructure from the ground up (Google Cloud Platform using Kafka, Airflow and BigQuery)...
We are looking strong problem solvers to join our rapidly growing team!
Curious to know what we’re working on here at WePay? Check out our engineering blog
https://wecode.wepay.com/
Any questions, email miller [at] wepay [dot] com - OR - Apply at https://go.wepay.com/careers
Sure, if the provider of the gRPC service wishes to also offer an HTTP gateway, that's true.
But it's trivially true in the case where the provider does so wish (as it would be true of any protocol with a fully-functional HTTP gateway infront of it), and it's untrue in the case where the provider doesn't.
And the provider has to do extra work:
"[offering an HTTP gateway] required adding custom options to gRPC definitions in protobufs, and add an additional container running this reverse-proxy server." ( https://wecode.wepay.com/posts/migrating-apis-from-rest-to-grpc-at-wepay )
This still seems like a massive regression in openness to me.
This is a really tough problem to solve. I know Alibaba and WePay both have made solutions to try and handle it at scale
https://github.com/seata/seata
https://wecode.wepay.com/posts/waltz-a-distributed-write-ahead-log
At the end of the day I don't think anyone should be coding distributed transactions into their app's. If you need use a solution that abstracts them for you. Eventually we will get one into Vitess ( https://vitess.io ) when we have figured out something general purpose enough to work for lots of workloads
Here's a good blog post from a WePay engineer that explains some of the slowness - https://wecode.wepay.com/posts/supporting-chip-cards-at-wepay
Part 2: https://wecode.wepay.com/posts/streaming-cassandra-at-wepay-part-2