whoami wrote:
The business logic layer is not aware of the context; I mean, in the business logic, you cannot know what the transaction boundaries are. Only the 'client' knows it. (Unless offcourse your business logic layer is actually a 'service layer' that implements all the use cases).
i don't want to start a discussion about application architecture but i cannot fully agree with you. The business logic handles business transactions which are normally achieved in a specific context. The data needed for a business transaction is normally handled as an entity which is read and written from / to the database in a transaction. I agree with you that the implementation details of handling a transaction should be placed in a service layer, but the business logic needs to know the boundaries of a transaction otherwise it could not handle the business transaction. The client do not need to know anything about the business transactions and transaction boundaries, he just has to display the data.
Regards
Klaus