Substrate provides the concept of signed extensions to extend an extrinsic with additional data, provided by the SignedExtension trait.
The transaction queue regularly calls signed extensions to keep checking that a transaction is valid before it gets put in the ready queue. This is a useful safeguard for verifying that transactions won't fail in a block. They are commonly used to enforce validation logic to protect the transaction pool from spam and replay attacks.