Get started quickly
Claudia just uses standard NPM packaging, no need to learn any new configuration language.
Run a single command, and it's done. Claudia takes care of all the AWS workflows.
Develop the way you like
Claudia is just a deployment tool, without runtime dependencies.
Run multiple versions
Claudia makes it easy to manage multiple instances for development, testing and production.
Set up commonly used event sources with the correct IAM privileges, such as S3, SNS and scheduled events.
Just use NPM scripts to plug into your deployment pipeline.
This means that you can get started with Lambda microservices easily, and focus on solving important business problems instead of dealing with AWS deployment workflows.
Why use Claudia, and not just deploy manually?
AWS Lambda and API Gateway are incredibly flexible, but they can be tedious to set up, especially for simple scenarios. The basic runtime is oriented towards executing Java code, so running Node.js functions requires you to iron out quite a few quirks, that aren't exactly well documented.
Claudia automates all those steps for you, and uses the standard NPM packaging conventions, so you do not have to change your project layout. Just call `claudia create` and Claudia will pack up and post-process your code, grab all the dependencies, clean up irrelevant resources, upload to Lambda, set-up web APIs, and update version aliases. In addition, Claudia automatically configures the Lambda function for commonly useful tasks, allowing `console.log` to pipe to CloudWatch, helping you add event sources with correct IAM privileges and manage different versions for production, development and testing easily.
How does it compare to ...?
Claudia is a deployment utility, not a framework. It does not abstract away AWS services, but instead makes them easier to get started with. As opposed to Serverless and Seneca, Claudia is not trying to change the way you structure or run projects. The optional API Builder, which simplifies web routing, is the only additional runtime dependency and it's structured to be minimal and standalone. Microservice frameworks have many nice plugins and extensions that can help kick-start standard tasks, but Claudia intentionally focuses only on deployment. One of our key design goals is not to introduce too much magic, and let people structure the code the way they want to.
Claudia helps you get simple stuff done, quickly. As opposed to Swagger, Claudia has fewer features, but does simple stuff easier. Claudia doesn't require you to define APIs in separate interface files. There's no need to learn a special interface syntax, no need to keep your definition spread across multiple files and introduce the overhead of coordination and maintenance – just write the code to handle requests. So, for example, Claudia can help you get started easily with a simple web API, but you won't be able to export it easily into iOS or Android SDKs. If you want to use a heavy interface-definition library you still can, and Claudia can deploy it, but for most of what we needed to do, that was a huge overkill.
So, as a summary, if you want to build simple services and run them with AWS Lambda, and you're looking for something low-overhead, easy to get started with, and you only want to use the Node.js runtime, Claudia is a good choice. If you want to export SDKs, need fine-grained control over the distribution, allocation or discovery of services, need support for different runtimes and so on, use one of the alternative tools.
Here are some quick links to help you get started and use Claudia more effectively: