Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
086cbbb
Phase 1: Adding core functionalities
ferid333 Jul 16, 2026
f1b5fc4
Phase-1: Adding core functionalities
ferid333 Jul 16, 2026
0e1424d
Merge pull request #1 from ferid333/phase-1
ferid333 Jul 16, 2026
2c2183f
Phase-2: Adding cleanup scheduler
ferid333 Jul 17, 2026
1315972
Merge pull request #2 from ferid333/phase-2
ferid333 Jul 17, 2026
91c53aa
Phase-3: Adding metrics
ferid333 Jul 18, 2026
b64857c
Merge pull request #3 from ferid333/phase-3
ferid333 Jul 18, 2026
222147f
Phase-4: Adding TCP server, Command parser and processor
ferid333 Jul 21, 2026
271d416
Merge pull request #4 from ferid333/phase-4
ferid333 Jul 23, 2026
085b175
Phase-5: Adding TCP client and different connection types
ferid333 Jul 26, 2026
0eb9eda
Phase-5: Adding TCP client and different connection types
ferid333 Jul 30, 2026
89cba3b
Merge pull request #5 from ferid333/phase-5
ferid333 Jul 30, 2026
f9fbe7e
Phase-000: Fixing bugs and making some improvements
ferid333 Aug 1, 2026
963411e
Merge pull request #6 from ferid333/phase-000
ferid333 Aug 1, 2026
955957b
Create README.md
ferid333 Aug 1, 2026
69ce5a6
Phase-tech: Adding tests and checkstyle for the project
ferid333 Aug 3, 2026
88ef2fd
Merge pull request #7 from ferid333/phase-tech
ferid333 Aug 3, 2026
2705f68
DVLP-001: Adding actions and CI pipeline
ferid333 Aug 4, 2026
6a85ee5
Merge pull request #8 from ferid333/tech/add_actions
ferid333 Aug 4, 2026
217bd68
DVLP-002: Add HTTP server and refactor some code
ferid333 Aug 5, 2026
d0beee9
Merge pull request #9 from ferid333/feat/adding_http_server
ferid333 Aug 5, 2026
996ba70
DVLP-003: Refactor some network code
ferid333 Aug 6, 2026
ae915d6
Merge pull request #10 from ferid333/tech/refactoring_network
ferid333 Aug 6, 2026
5cd70bd
DVLP-004: Add config file and its reader
ferid333 Aug 7, 2026
4bca347
Merge pull request #11 from ferid333/feat/adding_config_file
ferid333 Aug 7, 2026
c6b0748
DVLP-005: Refactor code and add tests for Cache confog loader
ferid333 Aug 7, 2026
a52fb2c
Merge pull request #12 from ferid333/tech/refactor_some_code
ferid333 Aug 8, 2026
ddb694a
DVLP-006: Add static clustering
ferid333 Aug 8, 2026
6f2735a
Merge pull request #13 from ferid333/feat/add_static_clustering
ferid333 Aug 8, 2026
a63811b
DVLP-007: Add consistent hash ring
ferid333 Aug 9, 2026
8808f0d
Merge pull request #14 from ferid333/feat/adding_consistent_hashing
ferid333 Aug 9, 2026
404b1e7
DVLP-008: Add request routing
ferid333 Aug 11, 2026
44d6f31
Merge pull request #15 from ferid333/feat/adding_service_routing
ferid333 Aug 11, 2026
6ebce04
DVLP-009: Refactor routed cache service
ferid333 Aug 13, 2026
cb2b604
Merge pull request #16 from ferid333/tech/refactoring
ferid333 Aug 13, 2026
8ddf364
DVLP-010: Add functionality to read from replicas
ferid333 Aug 14, 2026
0d37fea
Merge pull request #17 from ferid333/feat/adding_replica_read
ferid333 Aug 14, 2026
af85855
DVLP-011: Add ping command
ferid333 Aug 15, 2026
e24a649
Merge pull request #18 from ferid333/feat/adding_ping_command
ferid333 Aug 15, 2026
21dcbf3
DVLP-012: Add health monitor for nodes
ferid333 Aug 17, 2026
dacb71c
Merge pull request #19 from ferid333/feat/adding_health_monitor_for_n…
ferid333 Aug 17, 2026
3607cce
DVLP-013: Add gossip protocol
ferid333 Aug 20, 2026
95f3491
Merge pull request #20 from ferid333/feat/adding_gossi_protocol
ferid333 Aug 20, 2026
77737fb
DVLP-014: Add docker file
ferid333 Aug 22, 2026
528f9d7
Merge pull request #21 from ferid333/feat/adding_docker_file
ferid333 Aug 22, 2026
11abaf0
DVLP-014: Add Readme file
ferid333 Aug 25, 2026
4b649ca
Merge pull request #22 from ferid333/tech/adding_readme_file
ferid333 Aug 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.gradle
build
.git
.idea
.agents
.codex
*.iml
*.log
83 changes: 83 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: CI

on:
pull_request:
branches:
- master
- develop
push:
branches:
- master
- develop

permissions:
contents: read

jobs:
pull-request-rules:
name: Pull Request Rules
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- name: Validate PR title
env:
BASE_BRANCH: ${{ github.event.pull_request.base.ref }}
PR_TITLE: ${{ github.event.pull_request.title }}
run: |
if [[ "$BASE_BRANCH" == "develop" && ! "$PR_TITLE" =~ ^DVLP ]]; then
echo "PR title must start with DVLP when targeting develop."
echo "Target branch: $BASE_BRANCH"
echo "Actual title: $PR_TITLE"
exit 1
fi

title_length=${#PR_TITLE}
if (( title_length > 120 )); then
echo "PR title must not be longer than 120 characters."
echo "Actual length: $title_length"
exit 1
fi

unit-tests:
name: Unit tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '21'

- name: Set up gradle
uses: gradle/actions/setup-gradle@v6

- name: Make Gradle executable
run: chmod +x ./gradlew

- name: Run unit tests
run: ./gradlew test

checkstyle:
name: Checkstyle
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '21'

- name: Set up gradle
uses: gradle/actions/setup-gradle@v6

- name: Make Gradle executable
run: chmod +x ./gradlew

- name: Run checkstyle
run: ./gradlew checkstyleMain checkstyleTest
43 changes: 43 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/

### IntelliJ IDEA ###
.idea/modules.xml
.idea/jarRepositories.xml
.idea/compiler.xml
.idea/libraries/
.idea/
*.iws
*.iml
*.ipr
out/
!**/src/main/**/out/
!**/src/test/**/out/

### Eclipse ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/

### VS Code ###
.vscode/

### Mac OS ###
.DS_Store
25 changes: 25 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
FROM eclipse-temurin:21-jdk AS build

WORKDIR /workspace

COPY gradlew gradlew
COPY gradle gradle
COPY build.gradle settings.gradle ./

RUN chmod +x gradlew
RUN ./gradlew --no-daemon dependencies

COPY src src

RUN ./gradlew --no-daemon bootJar -x test

FROM eclipse-temurin:21-jre

WORKDIR /app

COPY --from=build /workspace/build/libs/*.jar app.jar

ENV CACHE_CONFIG=config.yml
ENV JAVA_OPTS=""

ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -Dcache.config=$CACHE_CONFIG -jar /app/app.jar"]
Loading
Loading