Skip to content

Discussion: Directions to take async interception #60

@JSkimming

Description

@JSkimming

We've had several discussions on issues and pull requests on this repo, and on Castle.Core, and I wanted to bring it together (if possible).

Firstly, I want to thank you guys for getting involved. I imagine we've all got day jobs, so any time we can give to this is fantastic.

Here is my current thinking, it's by no means an exhaustive list, it's just what's top of mind at the moment.

  1. The design of AsyncInterceptorBase is a mistake.
  2. What to do with return value?
    • I think one of the challenges we've had with async before Proceed has been to do with the return value being out of band and as a result out of our control.
    • I like the idea raised by @brunoblank in PR IAsyncInterceptor with return values #40, and I wonder what other's think.
    • I believe you @stakx think differently, though I can't remember the comment that gave me that impression.
  3. Closely align with the design of Castle.Core
    • This is related to the return value discussion since the design of the IInvocaton has the return value as a property.
    • I think it is a benefit to match the design of Castle.Core as it adheres to the Principle of least astonishment and developers familiar with Castle.Core will find it easier to pick up AsyncInterceptor.
    • Close alignment to Castle.Core may improve the chances of this becoming incorporated into Castle.Core. This is something I considered when I first started this library, and I've received comments along that line on other issues. Thoughts @stakx?

The current alpha introduces some breaking changes, and I believe we must introduce more, given point 1. I think now is an excellent time to tackle some other gnarly issues if you guys are happy to get involved?

All views regretfully received.

Metadata

Metadata

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions