Cosmo Architecture Ideas
EIM based Cosmo
The idea is that Cosmo would have a low-level EIM based layer based on recordtypes and fields. This layer would provide solid CRUD apis for EIM records including a synchronization api with full diffing. Morse Code would be built using these apis and know nothing about notes/events/stamps. Now that we are talking about providing bi-directional atom using eim, this too could be built using the same layer.
Cosmo would then have a PIM layer built on top of the EIM layer to expose Events/Stamps/Notes/etc to higher layers such as CalDAV and
CosmoUI?. Additional modules that are built on top of EIM could be added to allow Cosmo to support new object models/protocols.
The cool thing about this architecture is that Cosmo has a known/unchanging/abstract way of storing/retrieving data and a nice protocol (morse code) to go along with it. Everything else would be built on top of this. The only part of this stack that is dependent on Chandler's data model is the PIM module. Cosmo then becomes a general purpose data store, with many applications possible.
Crazy right? Just so crazy it might work...or not.
--
RandyLetness - 26 Mar 2007