Client data storage requirements
Store a location record.
The size is about 768 bytes/record. A hash of string key names and string/float values including latitude=float, longitude=float, altitude=float.
- Given an ID, the last X records by time
- Given an ID, the IDs of others within X meters of given ID (based on other IDs' most recent update)
1. Android client to storage service. Many clients could be talking to SimpleDB or a self-hosted install of CouchDB.
2. Client to client storage. A group of five people with G1s want to share location data. Bootstrap each client with the IP of one other client. Post updates directly to each of the other 4 phones. Use the other 3 phones to learn of IP updates for any one peer.
Each client generates a flurry of records. These records need to be duplicated to other clients and possibly to long-term storage on a "server". The current setup is the record is copied to a server, and read from the server by other clients. I like the idea of client to client distribution with long term storage as a nice option. disconnected operation with a merge/conflict resolution dance occasionally.
To be continued...