npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

beekeeper-cli

v1.1.2

Published

Open-sourced infrastructure as a service virtual waiting room.

Downloads

7

Readme

Beekeeper Header

Overview

Beekeeper is an open-sourced Backend as a Service (BaaS) built to handle bursty traffic from one-off events like a sale or promotion. . Set up a virtual waitroom in a few minutes, and tear it down in seconds.

Beekeeper deploy

There is a difference between infrastructure needed for normal business activities and infrastructure needed for high traffic one-off events. An abrupt increase in website traffic can be the effect of many different causes. One such cause is an event like a Black Friday sale or similar promotion. If the existing infrastructure is unprepared for the spike in traffic it may result in a Denial of Service. The desired service may be unavailable until traffic declines to a manageable level. Beekeeper is a fast and flexible solution to this bursty traffic.

Beekeeper Architecture

Beekeeper architecture

The Team

Ryan Schaul Software Engineer • Chicago, IL

Ian Eustis Software Engineer • Portland, OR

Justin Zeng Software Engineer • Los Angeles, CA

Aaron Crane Software Engineer • San Francisco, CA

Getting Started

Prerequisites

Install Beekeeper

npm install -g beekeeper-cli

Commands

beekeeper init

creates a waitroom account, enabling the deploy, destroy, on, off, and set-rate commands. init can be run multiple times to create mutiple accounts

Beekeeper init

The init command will prompt for the following information:

  • Profile name - differentiates your various waitrooms from each other, and lets you choose which one to create, modify, or destroy.
  • Waiting room name - publicly displayed in the online waitroom, so it's best to choose something that describes what the waitroom is for, such as the name of your company so that your customers know that they're in the right place
  • AWS region - the aws region that you would like to place your waitroom in
  • URL endpoint/protected URL - the URL that you want to direct people to after they go through the waitroom.
  • Allowed users per minute - the max amount of users that you want to allow onto your website per minute. The ideal amount differs greatly between websites, and its best to find your ideal traffic through load testing and tracking analytics. Beekeeper allows a minimum of 10, and no set maximum
  • Enable Dynamic Rate Throttling (DRT) - beekeeper can do automatic health-checks of your website, and throttle the traffic to it if beekeeper detects that it has slowed down to an unhealthy level

beekeeper deploy <name>

Builds custom files, uploads them to s3 buckets, and sets up the waitroom architecture on your AWS account. Once it's done, you are given two URLS; the waiting room URL is what you provide to your customers/viewers publicly, and the client check endpoint can optionally be added to your own backend to prevent people from skipping the queue.

The following components will be created on your AWS account:

  • A master IAM role
  • S3 Bucket with all needed static assets (html/css/js/images)
  • SQS with dead letter queue (DLQ) attached
  • DynamoDB table
  • 3-4 lambdas (depending on if the DRT is enabled)
  • All required permissions
  • Beekeeper deploy

beekeeper destroy <name>

Removes all of the aws components associated with the given name. The URLs will no longer be valid


beekeeper config

Lists all of the accounts that were created with init


beekeeper off <name>

Turns off the waitroom. The provided URLS will continue to be valid, but people will be sent directly to the destination URL


beekeeper on <name>

Turns a waitroom on that had been previously turned off


beekeeper set-rate <name> <value>

Changes the rate at which people are sent from the waitroom to the final destination. Must be an integer between 10-3000


DEGUB=dev beekeeper <command>

Run a command in debug mode