  This paper reviews the state of the art channel coding techniques for
ultra-reliable low latency communication (URLLC). The stringent requirements of
URLLC services, such as ultra-high reliability and low latency, have made it
the most challenging feature of the fifth generation (5G) mobile systems. The
problem is even more challenging for the services beyond the 5G promise, such
as tele-surgery and factory automation, which require latencies less than 1ms
and failure rate as low as $10^{-9}$. The very low latency requirements of
URLLC do not allow traditional approaches such as re-transmission to be used to
increase the reliability. On the other hand, to guarantee the delay
requirements, the block length needs to be small, so conventional channel
codes, originally designed and optimised for moderate-to-long block-lengths,
show notable deficiencies for short blocks. This paper provides an overview on
channel coding techniques for short block lengths and compares them in terms of
performance and complexity. Several important research directions are
identified and discussed in more detail with several possible solutions.
