Bloomreach Hippo CMS and the AWS cloud

Integrating Bloomreach Hippo CMS into your cloud infrastructure for smarter downstream systems

The XIN Mods for Hippo CMS offer two ways to immediately integrate with AWS:

  • out of the box, it provides Elastic Beanstalk scripts that will run the instance in the cloud
  • the CMS can inform an SNS topic of events that have happened within the CMS, ie. a page was published.

Use case: Notify downstream systems to encourage intelligent caching.

The CMS is oftentimes the source of truth for at least a large part of the information consumed by users of a website or app. Downstream systems consume the information exposed by the CMS and deliver it to the user. It is common for these systems to have caching mechanisms in place to optimise their delivery speeds. Especially in larger scale systems, intelligently caching content is a great concern to keep costs down.

If the CMS is able to notify these downstreams that a particular piece of information has changed, they could hold on to the old information until they receive such a notification, reducing the load of information retrieval on the CMS system.

Adding SNS events to Bloomreach Hippo

To enable sending Hippo CMS Bus Events to an SNS topic, you must edit the setenv.sh file (or pass along to MVN) the following parameter: -DAWS_HIPPOBUS_ARN=<topicarn>.

If you cannot easily access these locations, alternatively, you could make sure the AWS_HIPPOBUS_ARN environment variable is set. Your start-local.sh could look like this:

#!/bin/bash

export AWS_HIPPOBUS_ARN=<THE_ARN>
mvn verify && mvn -P cargo.run -Drepo.path=storage-dev 

When the CMS is restarted, events sent to the bus will be forwarded to the SNS topic of choice, provided the AWS Credential Provider can get to the topic. In an actual cloud environment like EB this means your EC2 instance has the IAM roles to send information to the topic.

Locally, it means your AWS configuration (either automatic through ~/.aws/conf or through environment variables) is setup correctly when running the CMS.