Skip to content

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.

License

Notifications You must be signed in to change notification settings

andygeiss/cloud-native-store

Repository files navigation

Cloud Native Store

License Releases Go Report Card Codacy Badge Codacy Badge

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.

Project Motivation

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:

  1. Demonstrate best practices for building scalable, secure, and reliable cloud-native applications.
  2. Showcase the use of hexagonal architecture to enable modular and testable code.
  3. Offer a reference implementation for features like encryption, transactional logging, and stability mechanisms.
  4. Inspire developers to adopt cloud-native patterns in their projects.

Project Setup and Run Instructions

Follow these steps to set up and run the Cloud Native Store:

Prerequisites

  1. Create an encryption key by running the following command:
just genkey
  1. Create an .env file and set the encryption key:
ENCRYPTION_KEY="0a0375de7bd186c2f8d80ef94e5f3d357462f594ca6785d4779f52bcb2b65b85"

Commands

Test the Service

To run unit tests:

just test

This will execute tests for the core service logic.

Build the Service

To build the service:

just build

This will create a docker image for the service.

Run the Service

To start the service:

just run

How to Test

After running the service, you can verify its health by visiting the following endpoint in your browser or using a tool like curl:

http://localhost:8080/health

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.

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published