The problem is caused by the too long message. When you send data with the IOTA Python library (PyOTA) to the Tangle, it first converts the unicode message into trytes, then puts these trytes into the signature/message field of a transaction.
When the converted trytes are too long to fit in one transaction, it splits them across two transactions. Now comes ...
Is there any observation on how much time it takes for a transaction to propagate through the IOTA network?
There isn't, this is due to the lack of topology mapping on the IOTA network. So any arbitrary measurements between two nodes on the network may take N unknown hops before reaching its destination.
We can say that the propagation time must be less ...
In IOTA, we don't have blocks.
Each transaction in the Tangle approves two previous transactions.
A confirmed transaction is one that is approved by the Coordinator.
You can read more about the Coordinator in the developer documentation.
Nodes can choose to take a local snapshot at any time, which would delete old transactions from their ledgers.
Therefore, to be sure that your zero value transactions are not deleted, you would need to run your own node that does not take local snapshots.
See the developer documentation for information on running a node.
Umair's answer is the correct one, but I just wanted to add that it's free to send only data in a transaction. We call this a zero-value transaction. Once a transaction is on the Tangle, anyone can read it as long as it isn't encrypted, for example using a restricted or private channel in Masked Authenticated Messaging.
We recently updated the documentation ...
When you check the associated bundle, you will see that the bundle transfers the money from address ZJBSFPLRDZUUJKYMRQ9OYQ9NZTGYYWAYEVLYOUY9XQHWFESPRFDKJSEJKUSRLSXIZNGIZZBTWLZWIQXJD to the same address ZJBSFPLRDZUUJKYMRQ9OYQ9NZTGYYWAYEVLYOUY9XQHWFESPRFDKJSEJKUSRLSXIZNGIZZBTWLZWIQXJD. In other words, this transaction is equivalent to sending money to your own ...
I am not a developer, so I can not help you with the code.
One first note: Sending names, surnames and other GDPR protected information publicly over a DLT like the Tangle (or any other blockchain) is excluding your solution from being GDPR compliant as permanodes (or the blockchain) keep this information forever.
More information about Blockchain and GDPR ...
Yes, the message part is just an unencrypted message that everyone can read; It is encoded with the asciiToTrytes method which can be detected and decoded on the fly. You can see this here:
Here are some 'workshops' covering several hello world examples, including sending a simple non value transaction: