UL grant procedures

Hello experts.

Anyone here have good understanding of the difference between configured grant, semi persistent scheduling and dynamic grant? When it’s more suitable each. Also do they differ with harq feedback procedure?

Thanks,
Tyler