The current model is very tightly coupled with inter-related classes directly referencing each other to build a fairly complex model graph. This approach makes providing a mixed persistence mode very difficult. This proposal attempts to rectify the situation by defining "verticals" within the object model that can remain tightly coupled but using ids to reference "horizontal" objects. This coupling also affects how objects should be persisted/acted-on as groups. Along with the entities below the () contain the service and repository objects that will manage the items.

Verticals


Page (PageService, PageRepository)

Page Prototyping

Page Rendering

Widget (WidgetService, WidgetRepository)

Person (PersonService, PersonRepository)

User

System

OAuth

  • OAuthConsumerStore
  • OAuthTokenInfo

Groups (GroupService, GroupRepository)

  • Group
  • No labels