is there a certain type of java.util.concurrent.Executor that I should be using for the :executor arg in transact/`transact-async`? Obviously a lot will depend on the usage pattern of my application apart from Asami's own requirements, but I was wondering if there were any obvious pitfalls to avoid. should I be using a single-threaded executor, pool of fixed size, etc?
mostly I'm trying to avoid the footguns that come with asynchronous access to a disk-backed DB
You're not likely to encounter any such things. Transactions are append-only and queries will only be executed against the post-transaction database once it's complete
The executor argument is just if you have one of your own that you want to use, rather than the usual one you’ll get from a future
gotcha