In Java, all methods are virtual. This allows frameworks like Mockito to create unit-testing stubs from any class: MyFoo foo = Mockito.mock(MyFoo.class);
Temporal, however, requires that I declare an interface and an implementation for my activities and workflows.
Is this a hard requirement, or just an implementation detail? Could the Temporal java-sdk be written in a way as to require only annotating the implementation class/methods with @TemporalWorkfow
, @WorkflowMethod
, @QueryMethod
, etc?
The same idea applies to python as well, which has even less of a concept of interfaces.