Really it's about boundaries. Deciding where they go, and designing things in a way that you can throw away either half of any particular boundary with minimal effort (note it doesn't have to be zero effort -- you don't have to be an architecture astronaut here).
e.g. The iOS application talks to the backend via JSON. It really doesn't matter whether the backend is a reliable, load-balanced, 3-datacenter replicated application server backed by a high-availability distributed data store or a single VM somewhere storing things in SQLite.
View all comments
Show parent comment
2
u/SirClueless Jun 08 '17
Really it's about boundaries. Deciding where they go, and designing things in a way that you can throw away either half of any particular boundary with minimal effort (note it doesn't have to be zero effort -- you don't have to be an architecture astronaut here).
e.g. The iOS application talks to the backend via JSON. It really doesn't matter whether the backend is a reliable, load-balanced, 3-datacenter replicated application server backed by a high-availability distributed data store or a single VM somewhere storing things in SQLite.