We run a Snowplow open source infrastructure which was deployed using the AWS Terraform modules. We use the following component versions:
Kinesis Stream Collector 2.4.5 deployed with Terraform module “collector-kinesis-ec2” 0.2.1
Kinesis Enrich 2.0.1 deployed with Terraform module “enrich-kinesis-ec2” 0.2.1
S3 loader 2.1.3 deployed with Terraform module “s3-loader-kinesis-ec2” 0.2.1
New Docker images (and new Terraform modules), have been released since. For example, the Kinesis Stream Collector now has a Docker image 2.8.2 version that can be deployed through the “collector-kinesis-ec2” Terraform module version 0.5.
However, the latest compatibility matrix still points to old versions. Does this mean that it is not recommended to deploy these new versions and to stick to the old ones?
I can see why it’s confusing - it’s a discussion we’ve had internally and ‘compatibility matrix’ isn’t a very good name for what this actually serves as.
Once a quarter, we will update the recommended stack so that each component lists the latest version that we have thoroughly battle tested, consider stable and have high confidence in.
Newer releases will come out in between, but it’s quite rare that we’ll make a breaking change - if we do it’ll be in the release post. It’s even rarer that we’ll make a change that breacks compatibility across two components.
Such breaking changes are denoted by a major version bump. If the version you’d like to use isn’t a new major version, it’s compatible.
It’s safe to use those versions - we usually still have high confidence in them, they tend to be well tested and compatible. We just may not yet have battle tested them or used them in many prod environments yet.
Updating this is a quarterly cadence at present, to reduce toil on our side.