This paper lays the groundwork for the development of a coding theory for queueing channels and discusses a practical implementation that approaches the ultimate theoretical performance limits. The class of methods we propose here are, to the best of the authors' knowledge, the first known capacity-approaching practical methods to enable communication through packet timings in queueing systems. We here exploit the graphical structure of the conditional distribution of the departure process given the arrival process of a queue to develop a coding theory that leads to codes and low-complexity decoding algorithms with performance approaching the theoretical boundaries. The approaches draw from understanding the dynamics of queueing systems as well as algebraic coding theory and message-passing on graphs.