The goal of this development is to create an in-memory cache that can be used by http servers and other services and is faster at retrieving and setting data than conventional databases. It stores data in RAM and provides a simple interface for clients to access their data through a custom protocol built on top of TCP sockets.
- 12 factor app principles
- codebase tracked in version control
- no dependencies (no libraries, only built in functions)
- configurable by environment variables
- no backing services
- containerized (build stage)
- app runs as a singular process (no replica set behavior implemented yet)
- service exported via port binding
- runs as a UNIX process
- graceful shutdown on SIGTERM or SIGINT
- no production environment yet
- logs out to stdout
- no admin processes
- multiple distinct db
- safe user and resource handling with authorization and authentication (PBKDF2_HMAC)
- users are able to create, list and delete their databases
- single threaded, concurrent working, using the build-in asyncio library
- key expiration can be set (i.e. for expiring sessions)
- persistence on disk using the pickle library
- fast sequential save
- tests
- documentation
https://12factor.net/ https://docs.python.org/3/library/hashlib.html#hashlib.pbkdf2_hmac https://docs.python.org/3/library/pickle.html https://docs.python.org/3/library/asyncio-stream.html https://docs.python.org/3/library/unittest.html https://redis.io/commands
- koa & express js patterns