Cloud Native Store is a Go-based key-value store showcasing cloud-native patterns like transactional logging, data sharding, encryption, TLS, and circuit breakers. Built with hexagonal architecture for modularity and extensibility, it includes a robust API and in-memory storage for efficiency and stability.
The motivation behind Cloud Native Store is to provide a practical example of implementing a key-value store that adheres to cloud-native principles. The project aims to:
- Demonstrate best practices for building scalable, secure, and reliable cloud-native applications.
- Showcase the use of hexagonal architecture to enable modular and testable code.
- Offer a reference implementation for features like encryption, transactional logging, and stability mechanisms.
- Inspire developers to adopt cloud-native patterns in their projects.
Follow these steps to set up and run the Cloud Native Store:
- Create an encryption key by running the following command:
just genkey
- Create an
.env
file and set the encryption key:
ENCRYPTION_KEY="0a0375de7bd186c2f8d80ef94e5f3d357462f594ca6785d4779f52bcb2b65b85"
To run unit tests:
just test
This will execute tests for the core service logic.
To build the service:
just build
This will create a docker image for the service.
To start the service:
just run
After running the service, you can verify its health by visiting the following endpoint in your browser or using a tool like curl:
If the service is up and running, you will receive a 200 OK status and a brief JSON response indicating the service's health status.