
Original Reddit service architecture (credit: Reddit) HAProxy runs as a sidecar process handling proxying and load-balancing the downstream service traffic. Synapse reads the Zookeeper registry that Nerve populates and then writes the endpoint entries to a local HAProxy configuration file. Reddit makes use of Synapse, a per-instance Ruby process, to manage their service endpoint discovery. To simplify work for developers, Reddit developed Baseplate, a common framework that provides a health check interface and an abstraction layer for connecting to Nerve. Nerve is a Ruby process that runs a sidecar on each instance and registers them into a central Zookeeper cluster.
#REDDIT DARK ENVOY REGISTRATION#
As service instances are stood up and torn down, registration is handled by SmartStack Nerve. Reddit has been using Airbnb's SmartStack as their Service Mesh since they begun splitting services out of their monolith. As well, the number of considerations that engineers need to entertain when standing up new services has increased and now includes understanding client request behaviours, retry handling, circuit breaking, and granular route control. These changes have led to an increase in complexity in how they debug their applications in moving from investigating function calls to tracing RPCs between multiple services. This has run in parallel with an evolution of their backend architecture as they move from a monolithic application and begin to adopt a more service-oriented architecture.

#REDDIT DARK ENVOY SOFTWARE#
By adopting Envoy as a service-to-service Layer 4/Layer 7 proxy, they discovered significant improvements in observability, ease of adoption, and performance.Īccording to Courtney Wang, senior software engineer at Reddit, Reddit has undergone significant growth in both their engineering team size and product complexity over the past three years. As their architecture evolves from monolithic into smaller services, the complexity of supporting and debugging their existing framework is becoming too costly. Reddit introduced Envoy into their backend framework as service-to-service proxy to support their ongoing architectural improvements.
