July 8, 2023
Integrations manager
Management of 20+ data integrations with consistent input, output and tooling

Key Features
- Manages the security and variables for a bunch of integrations between construction software API's.
- Consistent error reporting shared with customers
- Easy timing based re-running
- External access to enabling, disabling, changing runtime etc.
Key learnings
- Had some changes to the API which caused everything to break. Before this we had a bunch of integrations which were by themself and making changes across them all meant it was a big pain.
- Setup a library for auth and querying which all of them import also to further factorize
- Error catching and used several different services with an AWS step function on a timer.
Design
- Dynamo DB containing JSON details for the task
- Run the lambda designated in the task def, passing input and looping if required (for larger tasks)
- Run bespoke lambda script
- Return JSON or if too large insert to another dynamo table and return the task_id to retrieve it.
- Send errors as a table to specified users in task def
- Regularly adding additional steps, allowing for re-run, external modification etc.
