elasticmq
serverless-bundle
Our great sponsors
elasticmq | serverless-bundle | |
---|---|---|
2 | 3 | |
2,405 | 530 | |
1.5% | -0.2% | |
8.8 | 7.4 | |
10 days ago | 5 months ago | |
Scala | JavaScript | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
elasticmq
-
Announcing a Serverless Microservices Template with GraphQL
Since a majority of services rely on the same system services, we can leverage Docker to start all the needed project services prior running services with the offline command. The template ships with a base docker-compose.yml that stands up an instance of ElasticMQ to emulate Amazon SQS's API. The Docker image can be extended to include other services like DynamoDB, Redis, or PostgresQL and can be run using yarn infrastructure:build or yarn infrastructure:start depending on if it's your first run or not.
-
Is DevOps as a profession too beholden to Big Cloud?
however...we have banned use of SQS. unlike S3/Minio, there's nothing API-compatible that we can run offline. (well, there's one thing, but it's in-memory / single node only and doesn't give us the durability/reliability we want with SQS). instead we use RabbitMQ because it's identical at the API layer no matter where we are. AWS has a hosted option for this but we haven't switched to it, because our existing self-managed Rabbit clusters are stable and well-understood.
serverless-bundle
-
Migrating a classic Express.js to Serverless Framework
As you can see in the above handler.js file, we're getting CommonJS instead of modern JavaScript or TypeScript. To get these, you need webpack or some other bundler. serverless-webpack exists if you want full control over your ecosystem, but there is also serverless-bundle that gives you a set of reasonable defaults on webpack 4 out of the box. We opted into this option to get us started quickly.
-
Announcing a Serverless Microservices Template with GraphQL
One of the most important aspects of serverless development is keeping an eye on your bundle sizes and to reduce cold start times on Lambda. Keeping this in mind, the template utilizes serverless-esbuild and serverless-analyze-bundle-plugin to provide function analysis out-of-the-box. I opted for serverless-esbuild over serverless-bundle for a few reasons:
-
Structuring a Real-World Serverless App
We use the package.json at the project root to install the dependencies that will be shared across all the services. For example, if you are using serverless-bundle to optimally package the Lambda functions, or using the serverless-plugin-warmup to reduce cold starts, they should be installed at the root level. It doesn’t make sense to install them in each and every single service.
What are some alternatives?
Op-Rabbit - The Opinionated RabbitMQ Library for Scala and Akka
serverless-esbuild - 💨 A Serverless framework plugin to bundle JavaScript and TypeScript with extremely fast esbuild
kafka-manager - CMAK is a tool for managing Apache Kafka clusters
serverless-plugin-warmup - Keep your lambdas warm during winter. ♨ [Moved to: https://github.com/juanjoDiaz/serverless-plugin-warmup]
Play - The Community Maintained High Velocity Web Framework For Java and Scala.
github-action - :zap::octocat: A Github Action for deploying with the Serverless Framework
serverless-microservices-graphql-template - A Serverless Framework getting started template for building microservice architectures with a public GraphQL API using nx for monorepo support.
PatrickJS-starter - MFE Starter
shardcake - Sharding and location transparency for Scala
serverless-webpack - Serverless plugin to bundle your lambdas with Webpack
lerna - :dragon: Lerna is a fast, modern build system for managing and publishing multiple JavaScript/TypeScript packages from the same repository.