Difference between uvm_sequence_item and uvm_transcation?

A uvm_sequence_item is an extended uvm_transaction that contains additional information to allow it to be generated by a uvm_sequencer. Since you will generally want to create items using a sequence, it is highly recommended to always use uvm_sequence_item.