{"id":50082009,"url":"https://github.com/bhf/aeron-cache","last_synced_at":"2026-05-22T15:53:49.362Z","repository":{"id":270977604,"uuid":"860904270","full_name":"bhf/aeron-cache","owner":"bhf","description":"A KV store built with Aeron, SBE and Agrona. RAFT clustered or single node - fast by default. HTTP, WS \u0026 SSE API with JSON payloads. UI, CLI \u0026 Embeddable Polyglot Libraries. K8s deployable.","archived":false,"fork":false,"pushed_at":"2026-05-19T18:38:51.000Z","size":5530,"stargazers_count":4,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-05-19T22:05:30.254Z","etag":null,"topics":["aeron","aeron-cache","agrona","cache","cloud-sympathy","helm","high-availability","k8s","kv-store","low-latency","microservices","raft","raft-cluster","sbe","sse"],"latest_commit_sha":null,"homepage":"https://sanjeev.pages.dev","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bhf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-09-21T13:32:03.000Z","updated_at":"2026-05-19T18:38:54.000Z","dependencies_parsed_at":"2025-01-04T14:42:06.833Z","dependency_job_id":"9cdb0b1a-cbe7-4d7c-9d74-89aac10e3b3e","html_url":"https://github.com/bhf/aeron-cache","commit_stats":null,"previous_names":["bhf/aeron-cache"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/bhf/aeron-cache","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhf%2Faeron-cache","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhf%2Faeron-cache/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhf%2Faeron-cache/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhf%2Faeron-cache/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bhf","download_url":"https://codeload.github.com/bhf/aeron-cache/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhf%2Faeron-cache/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33351917,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-21T12:23:38.849Z","status":"online","status_checked_at":"2026-05-22T02:00:06.671Z","response_time":265,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aeron","aeron-cache","agrona","cache","cloud-sympathy","helm","high-availability","k8s","kv-store","low-latency","microservices","raft","raft-cluster","sbe","sse"],"created_at":"2026-05-22T15:53:47.163Z","updated_at":"2026-05-22T15:53:49.357Z","avatar_url":"https://github.com/bhf.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Aeron Cache\n![img.png](docs/images/header.png)\n\n[![CI Build and Test](https://github.com/bhf/aeron-cache/actions/workflows/ci.yaml/badge.svg)](https://github.com/bhf/aeron-cache/actions/workflows/ci.yaml)\n\n*__Written and designed without LLMs or AI Agents.__*\n\nA key value store built using Aeron, Agrona and SBE. RAFT clustered and fast by default. UI with NextJS, Shadcn and Tailwind. \nIncludes HTTP, WS and SSE interfaces with support for multi-cache joins over WS and SSE. \nPrometheus+cAdvisor and tracing with Jaeger+OTEL. \nContainerized and deployable with ```docker compose``` or on Kubernetes via ```helm``` or ```kubectl```.\n\nFeatures:\n\n* Clustered and single node modes\n* Near cache implementation (read ahead)\n* Embedded cache [polyglot clients](https://github.com/bhf/aeron-cache-embedded) in Java, Rust, Typescript and Python\n* Rust based [CLI](https://github.com/bhf/aeron-cache-cli)\n\n\nhttps://github.com/user-attachments/assets/c602f365-2b6a-497c-a671-29508cc04155\n\n\nhttps://github.com/user-attachments/assets/cdbf0e54-2ff8-47c4-8a98-50a8104de6fd\n\n\n* [How To Run - Docker](#docker)\n* [How To Run - K8s/Helm](#k8s-and-helm)\n* [Multi-cache Subscriptions](#subscribe-to-multiple-caches)\n* [Project Structure](#structure)\n* [Overview](#overview)\n* [Testing](#testing)\n* [Roadmap](#future-work)\n\n## How To Run\n\n### Docker\n```bash\ngit clone https://github.com/bhf/aeron-cache\ncd aeron-cache/\n./gradlew build\ndocker compose build\ndocker compose up\n```\n\nYou should see something like this once the UI is ready:\n\n```bash\ncache-ws-client-1       | Starting Websocket interface\ncache-http-client-1     | Starting HTTP interface\ncache-ui-1              |    ▲ Next.js 15.2.3\ncache-ui-1              |    - Local:        http://localhost:3000\ncache-ui-1              |    - Network:      http://0.0.0.0:3000\ncache-ui-1              | \ncache-ui-1              |  ✓ Starting...\n\n```\n\nYou can also spin up a single node cache by using ```docker-compose-nonclustered.yaml```\n\n[Top](#aeron-cache)\n\n### K8s and Helm\n\nThe ```Makefile``` is setup to push images to Minikube.\n\n```bash\ngit clone https://github.com/bhf/aeron-cache\ncd aeron-cache/\nmake all\ncd k8s/helm/\nmake install-all\n```\n\n![img.png](docs/images/k9s-screenshot.png)\n\n[Top](#aeron-cache)\n\n## Subscribe to Multiple Caches\n\nTo subscribe to cache updates on caches with IDs 808 and 333:\n\n\n```bash\nuwsc http://localhost:7071/api/ws/v1/caches/808,333\n```\n\nYou can also do this over SSE:\n\n```bash\nhttp://localhost:7072/api/sse/v1/caches/808,333\n```\n\n[Top](#aeron-cache)\n\n## Structure\n\n__cache-client__ - An Aeron cluster based client for the cache.\n\n__cache-cluster__ - The core cache cluster service.\n\n__cache-common__ - Common entities and classes used in cache implementations.\n\n__cache-http__ - REST interfaces around the cache-client.\n\n__cache-ws__ - Websocket interfaces around the cache-client.\n\n__cache-sse__ - SSE interfaces around the cache-client.\n\n__cache-messages-sbe__ - Core SBE messages used by the cache.\n\n__cache-messages-http__ - Messages used by HTTP interfaces to the cache.\n\n__cache-near__ - Near cache implementation with a HTTP interface.\n\n__cache-ui__ - A UI that uses the REST API provided by cache-http-server\n\n__k8s__ - Helm charts and other K8s resources (work in progress)\n\n__hyperfoil__ - Some basic hyperfoil tests\n\n[Top](#aeron-cache)\n\n## Overview\n\n### Message Flow Overview\n\n![img_1.png](docs/images/msgFlow2.png)\n\n### Cluster Service Workflow\n\n![img.png](docs/images/cluster-flow2.png)\n\n### Client Flow\n\n![img_1.png](docs/images/client-flow.png)\n\n[Top](#aeron-cache)\n\n\n## Testing\n\n### Unit Tests\nThere are a number of unit tests (including some param variation) using JUnit and Mockito across both ```cache-cluster``` \nand ```cache-client``` which exercise the main functionality.\n\nCore coverage \u003e 70% (as of 4th July 2025)\n\n![img.png](docs/images/coverage-core.png)\n\n\n### JMH\nThere are a handful of JMH tests in ```cache-cluster``` and in ```cache-client```.\n\n### Integration Tests\n\nThere are various integration test suites in ```:cache-integration``` which use TestContainers. These are generally broken \ndown by environment/backend configuration combinations. \n\n[Top](#aeron-cache)\n\n## Future Work\n\n* Industrialization and cache-ops\n\nhttps://sanjdev.atlassian.net/jira/software/projects/AC/boards/22\n\n[Top](#aeron-cache)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbhf%2Faeron-cache","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbhf%2Faeron-cache","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbhf%2Faeron-cache/lists"}