Video available at: http://www.youtube.com/watch?v=E1ok08TVxDw
Indeed's flagship job search product has evolved over the years to meet new challenges. It began as a single, monolithic web application. This grew larger and increasingly complex as we built new features. To remedy this growing problem, we implemented a service-oriented architecture to improve system availability, scalability, and maintainability. We examined common practices for service-oriented architectures, and we discovered ways to improve on the state of the art. We developed these ideas into a new framework called Boxcar. In this talk, we will discuss the scaling problems we solved, the innovative ideas behind boxcar, and how we built the scalable architecture that we now use throughout our systems.
R.B. Boyer is a Software Engineer who has been with Indeed since late 2007. Over the years he has worked on a variety of projects, including distributed storage, authentication, and service architectures.
55. Icky Technical Details
SELECT * FROM jobs AS j
LEFT JOIN companyinfo AS ci
ON j.id=ci.job_id
LEFT JOIN locations AS loc
ON loc.id=j.location_id
WHERE j.id IN (12345, 62)
263. Table Shaking
Servers regularly hang up on connections
Clients expect failed connections
Failures are retried on new connections
264. Table Shaking
Servers regularly hang up on connections
Clients expect failed connections
Failures are retried on new connections
Bad configurations are less likely
265. Server A
slot 0
slot 1
Client X
0
1
Table Shaking
turns this
Server B
slot 0
slot 1
Client Z
0
1
266. Server A
slot 0
slot 1
Client X
0
1
Into this
Server B
slot 0
slot 1
Client Z
0
1