Countersigning is useful whenever you want two (or more) source chains to come to agreement (AKA ‘local consensus’). Each party agrees to sign a single entry. Signatures are gathered and distributed, then every party locks their chain and attempts to write the entry. If there’s a validation error, or they’re unable to collect evidence that their counterparties wrote the entry too, they can safely roll back and unlock their source chain without risk of being flagged for bad activity.
As you can imagine, it’s good for lots of things that require consistent shared state – legal agreements, votes, chess rankings, and of course good ol’ cryptocurrency transactions.
You can read a gentle overview at Dev Pulse 102. (@thedavidmeister please feel free to correct any errors or omissions here or in that article.)
With that said, please share your thoughts – questions, confusions, concerns, use cases – below. I’d like to collect these thoughts as I get ready to write a Core Concepts article on countersigning.