Difference between trace_id, request_id and transaction_id

Hey - I’m not sure what the best practice is for this and I wanted to hear if I’m approaching this in the right way or not.

I have a react based SPA and a backend in Django - I’d like to generate a transaction id when the SPA first boots, and group all frontend and backend events together under that transaction id. I’d also like a request id on the backend to distinguish between multiple requests on the same transaction.

My question is where does the trace_id fit into this? Is a trace closer to a transaction, where every click and interaction is captured and grouped together? Is it closer to a request id where we just capture on the backend and scope it much smaller on the frontend (EG starting the request and the immediate post processing of the data) ? Or is it something in between the two that I’m not seeing?