DEV Community

Discussion on: A handful of engineering principles at Factorial

Collapse
 
dfockler profile image
Dan Fockler

This was a really interesting read. Thanks for writing it! I think people tend to downplay the importance of language in coding and how it helps us understand how things were designed. So it's cool to see something about those ideas.

I've used services and decorators before and it sounds like that might be similar to Interactors. I would love to hear more about what the Interactor is.

Collapse
 
masylum profile image
Pau Ramon Revilla

Hi Dan,

An Interactor is just a glorified method. Basically a class with a call method that performs a verb. In our specific case though, we've built some sort of abstraction so all our interactors return a "Result" (like you would in rust) to communicate how that user intention succeded or not. Also, our interactors always leave an event (we use railseventstore.org) behind for auditing and inter-domain communication

Collapse
 
dfockler profile image
Dan Fockler

Okay, yeah I've used something similar called ActiveInteraction. github.com/AaronLasseigne/active_i...

It also returns a result object similar to what you are talking about.