The interconnection network is one of the most critical components in large scale computing systems, and its impact on the performance of applications is going to increase with the system size. In this paper, we describe Slingshot, an interconnection network for large scale computing systems. Slingshot is based on high-radix switches, which allow building exascale and hyperscale datacenter networks with at most three switch-to-switch hops. Moreover, Slingshot provides efficient adaptive routing and congestion control mechanisms, and highly tunable traffic classes. Slingshot uses an optimized Ethernet protocol, which allows it to be interoperable with standard Ethernet devices while providing high performance to HPC applications. We analyze the extent to which Slingshot provides these features, evaluating it with microbenchmarks and with several applications from the datacenter and AI worlds, as well as with HPC applications. We find that applications running on Slingshot are less affected by congestion compared to previous generation networks.