Architecture Paper

**Instructions for Reviewers**: First of all, thanks so much for doing this!  I’m really proud of this paper and want it to be my best work yet. This means that I’m approaching this from all angles. I’d appreciate your feedback on these things specifically:

* Do you agree with the technical assertions in this paper?
* How are the transitions between each paragraph and sections (aka how
  does it read?)
* How does the perspective come off? I’ve specifically tried to avoid
  using the word “I”. I don’t want the paper to come off as an opinion
  piece but a presentation of technical knowledge gained by
  experience.
* Do the code and test examples flow?
* What do you think should be removed?
* How can I make this more professional?
* And whatever else you can think of :)
* Leave all your comments in this PR
* Also expect typos and things like that. I can only proofread my own writing so many times :)

Sections not implemented yet:

* [ ] migration strategies
* [ ] conclusion
* [ ] RadiumCRM case study
I think that `Struct` does something different. For example, it also defines writers for fields, but sometimes you don't have them at all. Current example is better because it doesn't require to introduce `Struct` (some readers may not be aware of this stuff).