Design
Use case
In our small town, only a handful of people have the necessary resources for certain tasks. Things like tools, trucks or books are needed only in very specific times, and they aren't consumed when used. But, although everyone kind of knows each other, they don't want to give away their things to their neighbors without knowing where they will end up.
So! We need to create a small chain-of-custody application. With this, the owner of a resource will be able to lend someone a tool, knowing that whenever it changes hands, it will be logged in our app, and if at some point something is lost, we know who was the last person to hold it.
We can follow this design to accomplish it. Try to create a resource, and then transfer it between the three agents in the network.