BPM custom code tt table or ds?

In a custom code block in a BPM you have access to a bunch of tt tables and the ds.

When should you use each one and why?

Brett