my system work most in a bulk, so performance and loading are very important.
I want to advice with you about one of the main functionality in the application - "import items"
I get items need to validate them and merge them (if new create else merge).
item is a complex graph of objects.
I don't love that layers depends on another layers and they are not stateless , but as far as i see it i have to have kind of cache (if the entity was loaded take it from the cache) for the process .
I think thread local can be a good platform for this cache.