None of the architectures is the silver bullet, for each use case one could be better than another. Generally, streaming architecture was perceived as the best, but also as almost the most complicated.
Cracking the Code to Secure Software
"Security design patterns"
Use domain primitives (immutable)
Use entity snapshots (immutable representations of mutable entity)
Dealing with legacy code: add new layer translating to domain primitives
Boundary testing, extreme testing, domain DoS
Use immutable domain primitives wherever possible. (Too bad for all of us Jackson users out there). Test.
Git Anti-Patterns: How To Mess Up With Git and Love it Again
Rather introductory speech about GIT and a list of bad practices
Git as Dropbox, long living branches, branch highways...