In this structure I am implying a very specific data model. In particular, I am suggesting that you have a list of articles related to any particular article. Those articles are all of the previous revisions. How this is represented in your backing data store (i.e. SQL, Redis, etc.) is a question, but the high-level representation should be the same. For instance, in SQL, you could have a join-table which properly relates ID’s or run simply run a JOIN query directly that ultimately performs the same operation (depending on size of data, indexing requirements, etc.).
If I were to represent the JSON payload listed above as a POJO (so we can see some types!), it may look something like this:
public class Article {
public long id;
public String title;
public List<Article> versions;
}
Notice that you may not want to store copies, of course, merely references to the other articles.