Durable Object eviction heuristics?

Is there anything at all related to Durable Object eviction heuristics / lifecycle / algorithm anything ?

I have some state I want to persist, but having to make calls to the transaction API would completely defeat the purpose of having a Durable Object to begin with ???

Ideally we keep load state from storage, we operate in memory, and then only persist when necessary, otherwise the overhead of the storage API would be so much bigger.

I understand that there may be no guarantees on an API for doing something right before eviction, but is there at least some info on how this process works ?

  1. Can instances survive across alarms ? Are alarms meaningless in terms of surviving eviction ? I.e. can I use recurrent alarms to stop my object from eviction.
  2. How much time of inactivity is allowed before eviction ?
  3. Literally any information related to eviction ?

I failed to find anything useful in the docs.