1. A system, comprising: one or more computers configured to run an end-to-end test comprising a plurality of independent tests, wherein individual independent tests are designed to test a respective stage of an asynchronous multi-stage data processing system; one or more computers configured to provide a test data repository service, wherein the test data repository service is configured to communicate with the plurality of independent tests via a network; a test data storage configured to communicate with the test data repository service to store test input data for testing the stages of the asynchronous multi-stage data processing system; wherein to test a particular stage of the asynchronous multi-stage data processing system, one of the plurality of independent tests is configured to: subscribe to notifications of availability of test input data matching a set of criteria describing the end-to-end test, request test input data from the test data repository service for the particular stage, wherein the test input data for the particular stage is data for input to the particular stage, obtain a converted version of the test input data for the particular stage, wherein the converted version is expected to match an output of the particular stage corresponding to the test input data for the particular stage, and compare the converted version to the output of the particular stage to verify operation of the particular stage; and wherein the test data repository service is configured to store in the test data storage the output of the particular stage as test input data for a next stage of the asynchronous multi-stage data processing system.