23 August 2009

GAE + GWT Starter Project. 3) Getting Started

After a few days doing other things, I am back working on my GAE + GWT Starter Project. The last thing I did before I took a break was the high-level design. It looked like a layered design with these layers

  • UI
  • Person Client Cache
  • (Client-Server RPC)
  • Person Server Cache Pipeline
  • Database  
When it comes to implementing this design, the two key observations are
  • Each layer depends on the layer below it, and 
  • The biggest risks are in the bottom layers.
Therefore there are two reasonable ways to go about the implementation:
  • Bottom-up
  • Stubbing of the lower levels
Bottom-up reduces the uncertainties in the project fastest and allows each layer to built on working foundations. Stubbing allows the layers to be built and tested independently.

If there was more than one person working on this project then we would start by building the server cache pipeline (a simple piece of code) and adding stubs for each cache stage. This would allow people to work on different parts of the system independently of each other (and give us the stub framework we would eventually need for testing and tuning).

However I am the only person working on this project and the risk is concentrated in the bottom layers, so I am going to attack uncertainty and start at the bottom. 
  1. Build a person canonical meta-data based on using a few social networks.
  2. Get the GAE datastore saving and find person records reliably.
  3. Get the GAE server working reliably to deliver results in series of calls that are timed out in 10 seconds (well below sandbox limit and within human tolerance)
That should keep me busy for a while.

0 comments: