These days, I would always choose to use Chrony when possible.
Quoting the Chrony FAQ [1]:
> When combined with local hardware timestamping, good network switches, and even shorter polling intervals, a sub-microsecond accuracy and stability of a few tens of nanoseconds might be possible.
This is a level of accuracy many people think is only achievable using PTP, but Chrony can do it using NTP. Not that most people need this level of accuracy, but some do, and it's just plain cool.
Once you set up time sync, the next step is to make sure you have sufficient monitoring in place, so that you can stop worrying about all the subtle issues caused by out of sync systems.