SnapDragon provide brand protection to help against counterfeiters. Their goal is to protect clients of all sizes from online threats and infringements. They help to defend global innovators’ strong reputations, whilst also keeping customers safe. The purpose of working with Rebura was to improve their logging/audit solution to improve observability whilst maintaining optimal application performance.
The challenge
The objective was to outline requirements for a centralised logging service alongside a list of suggested designs for the solution to increase visibility of audit data to track usage across the SaaS platform – this deliverable is a prerequisite to being able to generate usage reports across the platform for customers. The product is multi-tenant – however, Snapdragon are currently unable to trace activity at the aggregate and individual tenant level.
As a SaaS provider it is essential to have a clear picture of how tenants are exercising your system, being able to have visibility of usage is key to improving technical strategies of a SaaS organisation. Without this it will be difficult to visibly see how to improve the service for the tenants from an infrastructure and functionality perspective.
The solution
They needed a way to audit user activity across the application in a centralised way (due to the multi-tenant architecture in place). This centralised logging service would allow Snapdragon to track tenant and user usage of the SaaS platform. The value of capturing these metrics can help the business to evolve and improve functionality and operations of tenants, which would require creating the infrastructure and mechanisms that can enable capture and analysis.
One of the requirements was to have strong data consistency. In the event of a write (of audit data) to persistent storage failing – a recovery mechanism should be in place to ensure that all audit data pushed to the message queue can be recovered and sent to the data store.
Overview of key deliverables:
Audit service
The Audit database should store all changes made in a source Amazon Aurora database, this data store should also include an alerting mechanism when a change or deletion occurs. The solution must contain the data of all tenants in one central locations with appropriate access controls in place. Using CloudWatch in conjunction with AWS Lambda, DynamoDB Streams and Amazon SNS this would be possibly. Gathering these insights would help shape the technical and strategic direction of the SaaS offering. It would also help influence the architecture by reviewing how tenants are imposing on the system. In doing so it would be clearer how the system is responding to the evolving nature of the multi-tenant workload. See architecture: