Is it possible to create an offer that would only be valid for a day through Stellar DEX? If not filled until expiry time, such offer would be automatically cancelled.
Centralized exchanges often allow specifying the order lifetime. For example in Kraken: https://support.kraken.com/hc/en-us/articles/203053246-Other-Order-Options
Specifying the expiration time does not seem to be possible through the Create Offer API.
Stellar Smart Contracts provide a capability to create a time lock: https://www.stellar.org/developers/guides/walkthroughs/stellar-smart-contracts.html#2-party-multisignature-escrow-account-with-time-lock-recovery
Could the expiration time for an offer be enforced with a smart contract?
I understand that the workaround solution is to send a cancel offer request after the expiration time, but that does not seem to be the optimal (or 100% reliable) way of doing things.