MapTiming has completely changed! Although you notice little on the outside, a lot of changes have taken place during the last year. The database layer has been completely refactored.
About a year ago, Google announced that Fusion Tables will end by December 2019. Because Fusion Tables featured an integrated presentation layer via Google Maps, it was chosen as back-end for MapTiming, although it was clear from the start that Google might pull out the plug at any day. Today, MapTiming is using the Google App Engine Datastore for storage.
The migration was quite interesting. Porting the fusion tables to datastore models was quite a challenge. Deciding the scope of your models and the implementation of their relationships has impact on performance and cost and the effect is not always very intuitive. The datastore is also imposing some weird design limitations, which you only find out by running into them. Once you’re on the right track, coding is very efficient, with much less lines of code needed compared to Fusion Tables.
Scalability of my data when displaying a map was a completely new challenge, because Fusion Tables used to take care of that part. I implemented map tiling using geohash coordinates and discovered the concept of sharding to download tiles in parallell to the browser. At some point I also decided that I’d like to support https, as Google is providing free certificates. Only then to find out that sharding is completely superfluous when you’re making a move to https, as it comes with HTTP/2, eliminating all delays when making multiple calls to the same domain.
MapTiming is running stable for the years to come!