So that's how we can have all of these multiple stacks that we're starting to split out, and still have one. One thing that we use it for is being able to do a lot of decision logic outside at the edge, and figure out which stack we're going to end that request to, based on the domain that is coming in, the path on the site, any of the cookies that the user has, including, perhaps, experiment bucketing. And if you saw the talk earlier, they do some pretty cool stuff. On the back-end, we use Thrift, Thrift gives us nice, strong schemas, and we allow for HTTP on the front-end for the API gateway so we can still talk to them from the outside.įinally, we have the CDN in front, that's Fastly. So, they are written in Python, which has helped us splitting stuff out of the existing Python monolith, and they are built on a common library that allows us to not reinvent the wheel every time that we do this, and it comes with monitoring and tracing and that kind of stuff built in. I will explain a little bit more what those mean later. So you can imagine that there's an API team, there's a listing team, there's a think team. The core thing here is that they are kind of the focus of individual teams. We are also starting to split up r2 into various back-end services, and these are all highlighted here. And it acts just like your mobile phone, or whatever other API client is out there. They all act as an API client themselves, so they will talk to APIs that are provided by our API gateway, or r2 itself. #HOW BAD IS YOUR SPOTIFY GOOD SCORE REDDIT CODE#The front-end engineers at Reddit got tired with the pretty outdated stuff we have in r2, so they are building out these modern, front-end applications, these are all in node and they share a code between the server and the client. That's a big Python blob and we will talk about that in a bit more detail. That's the original monolithic application that is Reddit and has been Reddit since 2008. In the middle here, the giant blob, is r2. So, that's actually really interesting here. And this also tells you a whole lot about our engineering organization, as much as it tells you about the tech that we use. I made a diagram like this a year ago, and it looked nothing like this. The other thing to know about this diagram is that it is very much a work in progress. But this is the core of the Reddit experience. So, I'm leaving out some really interesting stuff, like all of our data analysis and the ad stack, all that kind of stuff. This is a very high-level overview of the architecture of Reddit, it is focused only on the parts of the site that are involved with the core experience of the site. So, let's dig into what the site looks like. We are currently the 4th largest in the U.S., according to Alexa, and serve 320 million users every month, doing all sorts of stuff, like posting a million times a day, and casting 75 million votes. If you have not used Reddit, then how about a quick explanation? Reddit's the front-page of the internet, it is a community hub, and it is a place for people to talk about everything that they are interested in.īut, more importantly, for this topic, Reddit is a really big website. And this talk will hopefully help you understand why. I am hoping you will see it less and less, but you have definitely seen it. If you have used Reddit before, you have probably seen this a few times.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |