![]() As one example, we’ve built a Go service that feeds off our MySQL and MongoDB database replication logs and transforms backend database changes into a stream of immutable events in Kafka, with each row- or document-change event encoded as a protocol buffer. Protocol buffers have been particularly valuable in building out our data ecosystem, where we rely on them to standardize and allow safe evolution of our data schemas in a language-agnostic way. That said, there have been issues with the maturity of the PHP implementation relative to other languages. A gradual migration from JSON over HTTP/1.1 APIs to gRPC over HTTP/2 is underway and going well. Given that mix of languages, services, and some future data pipeline work detailed below, VSCO settled on gRPC and Protocol Buffers as the most practical solution for interprocess communication. Additionally, VSCO uses node.js for web applications, often with server-side React. There are exceptions, particularly where a mature JVM solution is available for a given problem. Today, VSCO has largely settled on Go for new services. Taking a first step away from JSON, we chose Protocol Buffers as the serialization format for this system. At the same time, a larger messaging service for email, push messages, and in-app notifications was built in Go. We experimented with some smaller services in node.js, Go, and Java. A monolithic PHP application in existence since the early days of the company was exhibiting performance problems and becoming difficult to maintain. In 2015, user growth forced VSCO down a familiar path. VSCO is in the process of migrating their stack to gRPC. Our guest post today comes from Robert Sayre and Melinda Lu of VSCO.įounded in 2011, VSCO is a community for expression-empowering people to create, discover and connect through images and words.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |