Should I use UUIDs or integer primary keys to optimize for massive writes of relational data?
UUIDs are useful when you have clients independently generating unique identifiers.

id INT UNSIGNED AUTO_INCREMENT is smaller, faster, 'ordered', etc.

Use UUIDs only if you don't have a viable alternative.  More discussion:  http://mysql.rjweb.org/doc.php/uuid

In my opinion, sha256 is overkill for a 'digest'.

500K rows INSERTed per day?  That's 6/second?  Not a problem.  When you get to 100/sec, we should talk further.