The causal set theory (CST) approach to quantum gravity postulates that at the most fundamental level, spacetime is discrete, with the spacetime continuum replaced by locally finite posets or causal sets. The partial order on a causal set represents a proto-causality relation while local finiteness encodes an intrinsic discreteness. In the continuum approximation the former corresponds to the spacetime causality relation and the latter to a fundamental spacetime atomicity, so that finite volume regions in the continuum contain only a finite number of causal set elements. CST is deeply rooted in the Lorentzian character of spacetime, where a primary role is played by the causal structure poset. Importantly, the assumption of a fundamental discreteness in CST does not violate local Lorentz invariance in the continuum approximation. On the other hand, the combination of discreteness and Lorentz invariance gives rise to a characteristic non-locality which distinguishes CST from most other approaches to quantum gravity. In this review we give a broad, semi-pedagogical introduction to CST, highlighting key results as well as some of the key open questions. This review is intended both for the beginner student in quantum gravity as well as more seasoned researchers in the field.