PF4J expects that your plugin code has a class that extends org.pf4j.Plugin interface. And for running and stopping the plugin, methods start() and stop() of this interface will be called. But our service is expected to have completely pure logic - without any side effects - we need to bring these two worlds together - Java impure plugins start/stop and Scala pure logic.
Two questions come up time and again: "when will the book be updated to Cats 2?", and "when will printed versions be available?" We're happy to say the answer to both is: soon! We have started working on updating the book. In fact the current version of the book, which is linked from the web site, is built against Cats 2 (although it does not discuss new concepts like the Parallel type class). This issue tracks our progress on the update.