Expected Behavior
A mismatch in actor interface contracts can be reported in a way that makes sense.
Actual Behavior
Having a mismatch in details like what namespace an interface or DTO is declared in results in a cryptic error message.
No interface found with this Id 403064080
This error can't really be reasoned about since it's a generated checksum. Fixing the problem is a matter of trial and error. I don't have in my head yet a clear picture of what exactly has to match for communication to work properly.
It seems like the best way (right now) to use actors with Dapr is to rely on binary dependencies to share contracts. This fights with the rationale for using microservices in the first place (to version and deploy separately).
Steps to Reproduce the Problem
Using the actor sample in the repo - remove the project reference from the sample client. Copy the IDemoActor interface into the sample project, and change the namespace used to declare to be inconsistent with the hosting project.
Expected Behavior
A mismatch in actor interface contracts can be reported in a way that makes sense.
Actual Behavior
Having a mismatch in details like what namespace an interface or DTO is declared in results in a cryptic error message.
This error can't really be reasoned about since it's a generated checksum. Fixing the problem is a matter of trial and error. I don't have in my head yet a clear picture of what exactly has to match for communication to work properly.
It seems like the best way (right now) to use actors with Dapr is to rely on binary dependencies to share contracts. This fights with the rationale for using microservices in the first place (to version and deploy separately).
Steps to Reproduce the Problem
Using the actor sample in the repo - remove the project reference from the sample client. Copy the
IDemoActorinterface into the sample project, and change the namespace used to declare to be inconsistent with the hosting project.