Hi Ed, I've provided (where I can) answers for your questions to get us started here. Please see inline.
On Fri, Aug 24, 2012 at 1:23 PM, Ed Kohlwey <[email protected]> wrote: > Questions: > > 1. Are annotations the only way to implement the desired features? Yes AFAIK. If I'm preempting your thoughts here, I agree that this is really restrictive (with respect to obtaining a more generalised design approach for a Gora compiler) but annotations are essential for for DynamoDBMapper [0] to achieve the correct mappings. As we were operating under the restrictions of the GSoC timeline, the decision was made to implement a DynamoDB specific compiler at this stage with the view of developing a more widely applicable implementation as the webservices API matured. > 2. What if other data stores have other annotations? Will we create more > compilers for them? This relates to my answer above... ideally the utopian vision would be to use implementations which do not restrict us to annotations for mappings but just now (and as no other options seemed immediately available) we have the one compiler for Avro based implementations, one for Amazon DynamoDB (with the aim of having one to cover all web services back stores if possible) but maybe individual compilers for other web services stores... this is far from ideal. > 3. Renato had mentioned that Gora supports "data services" now > (presumably in addition to databases). I'm not sure I understand this > distinction. I have heard Dynamo is a managed database that implements a > model similar to Cassandra. Can you elaborate on this statement? OK so this relates to the proposed addition of web services to the gora-core API (namely classes such as QueryWSBase[1], WSDataStoreBase[2] including specific packages for implementing web backed datastores of varying natures e.g. file-backed and webservice-backed) which do not rely upon Avro for serializations between the data store. For clarification on this point Gora's Persistent class extends from Avro's SpecificRecord which is certainly not appropriate for DynamoDB as Amazon uses web service requests for serializing to and from the data store and retrieving records. Additionally Avro based stores remain implementations of PersistentBase (still extending SpecificRecord) whilst the web services backed stores now implement PersistentWSBase. The reports which can be found here [4] contain commentary on all of this as and when we became aware of it during the design and progression of the project. I've intentionally not included replies to your thoughts section as I think it's best for me to leave this to simmer for a bit... also because I'll most certainly need to read it another once or twice for it to lodge properly ;) Hopefully Renato can chime in here with his thoughts, if there is anything I've failed to include or have stated incorrectly. Thanks Lewis [0] http://docs.amazonwebservices.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/dynamodb/datamodeling/DynamoDBMapper.html [1] http://svn.apache.org/repos/asf/gora/branches/goraamazon/gora-core/src/main/java/org/apache/gora/query/ws/impl/QueryWSBase.java [2] http://svn.apache.org/repos/asf/gora/branches/goraamazon/gora-core/src/main/java/org/apache/gora/store/ws/impl/WSDataStoreBase.java [3] http://svn.apache.org/repos/asf/gora/branches/goraamazon/gora-core/src/main/java/org/apache/gora/persistency/ws/impl/PersistentWSBase.java [4] http://svn.apache.org/repos/asf/gora/branches/goraamazon/gora-dynamodb/reporting/

