Hyperdoc project has born
A week has passed since the announcement of a pet project I was going to work on. A Serverless Content Repository. I have named the project Hyperdoc because I already own hyperdoc.io, which was another attempt to build a reactive content repository in Akka + Scala.
This is therefore the first report of the project status.
I have created a Git repository in my Github account and pushed the code I’ve written so far.
My idea is to build a serverless content repository that supports not only AWS, but other service providers. However, for now I’ll just focus in AWS. Node.js is supported by AWS and Azure, so it is the framework chosen to build the content repository. Python is supported in both too, but I am not proficient in that language.
The code is structured as following:
- /core: code agnostic from service providers.
- /aws/lambda: AWS lambda functions.
- /aws/store: AWS based storage.
- /aws/template.yml: AWS SAM template file.
Service provider agnostic
In /core I am implementing most of the content repository logic. To keep it agnostic, I am defining some classes, like NodeStore, that must be extended and implemented for each service provider, like AWSNodeStore which is based on DynamoDB.
Each AWS Lambda function is wrapped within a super function that will execute some interceptor before and after executing the actual AWS Lambda function. This will be helpful to implement some interceptors to manage security.