What separates a modern data stack from a legacy data stack?