Our track record in technological innovation speaks for itself.

Read one customer's journey below.

ADDITIONAL CASE STUDIES

A non profit helps minority founders acquire new skills.

Learn more

A global retail brand invests in AI and blockchain.

Learn more

A global energy company innovates with renewable energy.

Learn more

A digital transformation company seeks DevOps support.

Learn more

A health tech startup launches an app for clinicians.

Learn more

A health tech startup scales its platform built to host patient data.

Learn more

A major UK bank runs a hackathon

Learn more

Your organization here!

Learn more

AWS Lambda

Service Requirements

The application has two main data flows (both of which are handled by Lambda): AWS Marketplace User Linking; and Analytics. The first Lambda Function is used for linking users who sign up in the AWS marketplace with users in our Cognito pool. The second is used for saving analytics data.

All users are based in the EU-West-2 region. We knew that we only needed to expect max 100 concurrent users. As such, we found the default Lambda settings perfect for our use case.

We included cloud formation templates within our own CI/CD pipeline for resource management. If a bug was discovered in staging or production, we had separate scripts to roll back the cloud formation stack where necessary. The codebase has its own specialized error handling. Once an error is detected, the execution is retried (for example if an API call times out) or the codebase gracefully logs the error in CloudWatch and moves on to the next execution.

We utilized the static code analysis tool within NPM “npm audit” to ensure our dependencies had no security risks before deploying. The tool was included within our CI/CD pipeline. We required it to give us a clean bill of health before we could deploy. We also deployed the solution with a CI/CD pipeline based in BitBucket Pipelines. The pipeline loaded the latest version of the code from the Git repository, then ran “npm ci” to install any necessary dependencies. We then used AWS CLI to deploy the package to Lambda and S3.

No EC2 containers were necessary.

AWS API Gateway

Service Requirements

The Survey Feedback Lambda Function does some calculations based on the current timestamp and the last feedback submitted by the user before adding the feedback to the database. The Profile Generation Lambda Function makes calls to Cognito and AWS Marketplace that can’t be replaced. Both use regional as we do not expect heavy usage on these two URLs. As both of our APIs are mostly 1 way, we used the server-side throttling feature of API Gateway to ensure that we did not get more requests per second than we would expect. As we expected a fairly low request volume, we throttled the APIs at 50 requests per second.

We used API Gateway Mapping Templates to enable our AWS Marketplace API to receive a POST request from the AWS Marketplace when a new user signs up. The API would then make some API calls in the background, and respond to the request by displaying a HTML successful sign up page in the users browser. Finally, the browser renders the sign up page. Users take their generated credentials and use them to log in to the main application.

We also used CORS configuration to ensure that the user’s browser could send the request. Both APIs use the REST type API gateway. The Survey Feedback API is an internal API which uses the Cognito Authorizer feature of API Gateway to secure the API. The Profile Generation API is an external API which connects to AWS Marketplace. We use a custom response type to ensure that the POST request from AWS Marketplace redirects the user to a SignUp page upon generating a new user.