Skip to content

Commit

Permalink
docs: tweaks
Browse files Browse the repository at this point in the history
  • Loading branch information
Kikobeats committed Jan 12, 2024
1 parent c8c10da commit 0923129
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 4 deletions.
23 changes: 19 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
<div align="center">
<img src="https://github.com/microlinkhq/cdn/raw/master/dist/logo/banner.png#gh-light-mode-only" alt="microlink logo">
<img src="https://github.com/microlinkhq/cdn/raw/master/dist/logo/banner-dark.png#gh-dark-mode-only" alt="microlink logo">
<br>
<br>
<img src="https://github.com/microlinkhq/openkey/raw/master/design/banner.jpg#gh-light-mode-only" alt="microlink logo">
<img src="https://github.com/microlinkhq/openkey/raw/master/design/banner.jpg#gh-dark-mode-only" alt="microlink logo">
</div>

![Last version](https://img.shields.io/github/tag/microlinkhq/openkey.svg?style=flat-square)
Expand All @@ -11,6 +9,19 @@

> an AWS Gateway replacement for usage plans and keys for your HTTP API endpoint
## Concepts

<div align="center">
<img src="https://github.com/microlinkhq/openkey/raw/master/design/concepts.jpg#gh-light-mode-only" alt="microlink logo">
<img src="https://github.com/microlinkhq/openkey/raw/master/design/concepts.jpg#gh-dark-mode-only" alt="microlink logo">
</div>

**openkey** orbits around three concepts:

- **Plans**: Represents the quota, rate limit, and throttle information specified as a plan.
- **Keys**: Represents the credentials used during the authentication step and which plan is associated.
- **Usage**: Keep track of how much plan is available and consumed with the associated key.

## FAQ

### Why?
Expand All @@ -21,6 +32,10 @@ Until **openkey**, we use AWS Gateway feature for keys and plans for years. Alth

No, and we are not aspiring for it. We used to use a very specific feature present in the AWS Gateway service, and **openkey** is a replacement for that features, that's all. AWS Gateway can still do a lot of more things that this library.

### Why not TypeScript?

This library is intended to be used millions of times every day. We wanted to have granular control as much as possible, and adding a TypeScript transpilation layer isn't ideal from a performance and maintenance perspective.

### Why Redis?

We needed a backend layer fast for frequent writes, cheap at scale and mature enough for preventing vendor-lock in. We considered other alternatives such as SQLite, but according with this requeriments Redis is the no brain selection.
Expand Down
Binary file added design/banner.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added design/concepts.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added design/openkey.sketch
Binary file not shown.

0 comments on commit 0923129

Please sign in to comment.