There is currently no easy way to determine where the canonical data in a complex system resides and how it is updated, and my bet is we will see a new set of tools and languages evolve to create abstractions which will make it possible for mere mortal programmers like myself to get these architectures right.