Snowplow has a very different architecture from conventional open-source web analytics packages such as Piwik or Open Web Analytics. Where those packages are built on a tightly-coupled LAMP stack, Snowplow has a loosely-coupled architecture which consists of five sub-systems:
To briefly explain these five sub-systems:
In the rest of this page we explain our rationale for this architecture, map out the specific technical components and finally flag up the strengths and limitations of this architecture.
Snowplow's distinctive architecture has been informed by a set of key design principles:
The current technical architecture for Snowplow looks like this:
This architecture diagram will be updated shortly with the new ETL control tool, written in Ruby.
The Snowplow approach has several technical advantages over more conventional web analytics approaches. In no particular order, these advantages are:
The current Snowplow architecture, tightly coupled as it is to Amazon CloudFront and S3, has some specific limitations to consider:
For more information on these limitations, please see the Technical FAQ.