Why I draw the lines between modules first and let the abstractions arrive later, with the diagram I use to argue for it.
What I ask a service to promise before I call it twice, and the small table I keep to make the promise hold.