In reply to verif_learner:
It does not need to be a uvm_sequence_item, a class is usually more efficient since you are just passing a handle through and not the data.
Usually you are reconstructing a transaction sent by the driver, so that is why you see people using the same class type for analysis ports.