Skip to content

Enterprise-grade cloud platform with dual-protocol architecture (gRPC 2.5x faster / HTTP REST), OSGi Plugin System (Apache Felix) for hot-deployable extensions, Server-Side Rendering with GraalJS for React and Angular, supporting five deployment modes with full plugin synchronization across Kubernetes clusters.

Notifications You must be signed in to change notification settings

jrjohn/arcana-cloud-springboot

Repository files navigation

Arcana Cloud Spring Boot - Enterprise Java Microservices Platform

Architecture Rating Java Spring Boot gRPC OSGi Tests Coverage License

Enterprise-grade cloud platform with dual-protocol architecture (gRPC 2.5x faster / HTTP REST), OSGi Plugin System (Apache Felix) for hot-deployable extensions, Server-Side Rendering with GraalJS for React and Angular, supporting five deployment modes with full plugin synchronization across Kubernetes clusters. Includes Spring Cloud Config for centralized configuration and Plugin API Versioning for compatibility management.

Architecture

flowchart TB
    subgraph Client["Client Layer"]
        WEB[Web Client - React/Angular]
        MOB[Mobile Client]
        API[API Consumer]
    end

    subgraph Gateway["API Gateway"]
        REST[REST API :8080]
        GRPC[gRPC Server :9090]
        SSR[SSR Engine]
    end

    subgraph Plugins["Plugin System - OSGi"]
        PM[Plugin Manager]
        PB[Plugin Bundles]
        EXT[Extension Registry]
    end

    subgraph Controller["Controller Layer"]
        AUTH[AuthController]
        USER[UserController]
        PLUG[PluginController]
    end

    subgraph Service["Service Layer"]
        AS[AuthService]
        US[UserService]
        JWT[JwtTokenProvider]
        CB[Circuit Breaker]
    end

    subgraph Repository["Repository + DAO Layer"]
        UR[UserRepository]
        TR[TokenRepository]
        UD[UserDao]
        TD[TokenDao]
    end

    subgraph Data["Data Layer"]
        MYSQL[(MySQL 8.0)]
        PGSQL[(PostgreSQL)]
        MONGO[(MongoDB)]
        REDIS[(Redis 7.0)]
    end

    WEB --> SSR
    WEB --> REST
    MOB --> REST
    API --> GRPC

    SSR --> REST
    REST --> AUTH
    REST --> USER
    REST --> PLUG
    GRPC --> AUTH
    GRPC --> USER

    PLUG --> PM
    PM --> PB
    PM --> EXT

    AUTH --> AS
    USER --> US

    AS --> CB
    US --> CB
    CB --> UR
    CB --> TR
    JWT --> TR

    UR --> UD
    TR --> TD
    UD --> MYSQL
    UD --> PGSQL
    UD --> MONGO
    TD --> REDIS

    style Client fill:#e0f2fe
    style Gateway fill:#fef3c7
    style Plugins fill:#fce7f3
    style Controller fill:#d1fae5
    style Service fill:#e0e7ff
    style Repository fill:#fef9c3
    style Data fill:#f3f4f6
Loading

Data Access Layer (DAO Pattern)

The platform implements a multi-ORM DAO pattern with runtime switching between JPA, MyBatis, and MongoDB:

flowchart TB
    subgraph Service["Service Layer"]
        US[UserService]
    end

    subgraph Repository["Repository Layer"]
        UR["UserRepository (Interface)"]
        URI[UserRepositoryImpl]
    end

    subgraph DAO["DAO Layer"]
        UD["UserDao (Interface)"]
    end

    subgraph Impl["DAO Implementations - Conditional Beans"]
        JPA["UserDaoJpaImpl
        orm=jpa"]
        MYB["UserDaoMybatisImpl
        orm=mybatis (default)"]
        MON["UserDaoMongodbImpl
        type=mongodb"]
    end

    subgraph DB["Databases"]
        MYSQL[(MySQL)]
        PG[(PostgreSQL)]
        MONGO[(MongoDB)]
    end

    US --> UR
    UR --> URI
    URI --> UD
    UD -.->|jpa| JPA
    UD -.->|mybatis| MYB
    UD -.->|mongodb| MON
    JPA --> MYSQL
    JPA --> PG
    MYB --> MYSQL
    MYB --> PG
    MON --> MONGO

    style Service fill:#e0e7ff
    style Repository fill:#fef9c3
    style DAO fill:#d1fae5
    style Impl fill:#fce7f3
    style DB fill:#f3f4f6
Loading

ORM Selection Matrix

database.type database.orm Active DAO Use Case
mysql mybatis (default) UserDaoMybatisImpl Complex queries, full SQL control
mysql jpa UserDaoJpaImpl Rapid development, derived queries
postgresql mybatis UserDaoMybatisImpl Complex queries, PostgreSQL features
postgresql jpa UserDaoJpaImpl Rapid development, JPA ecosystem
mongodb N/A UserDaoMongodbImpl Document storage, schema flexibility

DAO Layer Benefits

mindmap
  root((DAO Pattern))
    Database Portability
      Switch MySQL ↔ PostgreSQL
      Switch SQL ↔ MongoDB
      Zero code changes
    ORM Flexibility
      JPA for rapid dev
      MyBatis for complex SQL
      MongoDB for documents
    Testing
      Mock DAO interface
      In-memory H2 for tests
      Testcontainers support
    Maintainability
      Single interface contract
      Implementation isolation
      Easy to add new DBs
Loading

Configuration Examples

# MySQL + MyBatis (Default - Best for complex queries)
database.type=mysql
database.orm=mybatis

# MySQL + JPA (Best for rapid development)
database.type=mysql
database.orm=jpa

# PostgreSQL + JPA
database.type=postgresql
database.orm=jpa

# MongoDB (NoSQL)
database.type=mongodb
spring.data.mongodb.uri=mongodb://localhost:27017/arcana_cloud

DAO Interface Example

public interface UserDao extends BaseDao<User, Long> {
    Optional<User> findByUsername(String username);
    Optional<User> findByEmail(String email);
    boolean existsByUsername(String username);
    boolean existsByEmail(String email);
    Page<User> findAll(Pageable pageable);
}

Implementation Selection Flow

sequenceDiagram
    participant App as Application
    participant Spring as Spring Context
    participant Cond as @ConditionalOnProperty
    participant DAO as UserDao Bean

    App->>Spring: Start Application
    Spring->>Spring: Read application.properties
    Spring->>Cond: Evaluate conditions

    alt database.orm=jpa
        Cond->>DAO: Register UserDaoJpaImpl
    else database.orm=mybatis (default)
        Cond->>DAO: Register UserDaoMybatisImpl
    else database.type=mongodb
        Cond->>DAO: Register UserDaoMongodbImpl
    end

    Spring->>App: Context Ready
    Note over App,DAO: Only ONE DAO implementation active at runtime
Loading

Key Features

mindmap
  root((Arcana Cloud))
    Architecture
      Five-Layer Clean Architecture
      Dual Protocol Support gRPC/REST
      Five Deployment Modes
      Circuit Breaker Pattern
    DAO Layer
      Multi-ORM Support
      JPA Hibernate
      MyBatis SQL Mapper
      MongoDB Documents
      Runtime Switching
    Plugin System
      OSGi Apache Felix
      Hot Deployment
      Extension Points
      Spring-OSGi Bridge
      Distributed Sync
      Bean Whitelisting
      JAR Signature Verification
    SSR Engine
      GraalJS Runtime
      React Next.js Support
      Angular Universal Support
      Render Caching
    Security
      OAuth2 + JWT
      Role-Based Access
      Token Refresh
      TLS/mTLS gRPC
      Plugin Audit Logging
    Resilience
      Resilience4j Circuit Breaker
      Cascading Failure Prevention
      Configurable Thresholds
    Configuration
      Spring Cloud Config
      Centralized Management
      Environment Profiles
      Runtime Refresh
    API Versioning
      Semantic Versioning
      @Since Annotations
      Compatibility Checks
      Deprecation Policy
Loading

Deployment Modes

The platform supports five deployment configurations with full plugin support:

flowchart TB
    subgraph Monolithic["1. Monolithic"]
        M_ALL[All Layers<br/>REST + gRPC<br/>Plugins Local]
    end

    subgraph LayeredHTTP["2. Layered + HTTP"]
        LH_C[Controller<br/>:8080] -->|HTTP| LH_S[Service<br/>:8081]
        LH_S -->|HTTP| LH_R[Repository<br/>:8082]
    end

    subgraph LayeredGRPC["3. Layered + gRPC"]
        LG_C[Controller<br/>:8080] -->|gRPC :9090| LG_S[Service<br/>:8081]
        LG_S -->|gRPC :9091| LG_R[Repository<br/>:8082]
    end

    subgraph K8sHTTP["4. K8s + HTTP"]
        KH_C[Controller Pods] -->|HTTP| KH_S[Service Pods]
        KH_S -->|Redis| KH_REDIS[(Plugin Sync)]
        KH_S -->|PVC| KH_PVC[(Shared Plugins)]
    end

    subgraph K8sGRPC["5. K8s + gRPC"]
        KG_C[Controller Pods] -->|gRPC + TLS| KG_S[Service Pods]
        KG_S -->|Redis| KG_REDIS[(Plugin Sync)]
        KG_S -->|PVC| KG_PVC[(Shared Plugins)]
    end

    style Monolithic fill:#d1fae5
    style LayeredHTTP fill:#fef3c7
    style LayeredGRPC fill:#dbeafe
    style K8sHTTP fill:#fce7f3
    style K8sGRPC fill:#e0e7ff
Loading

Deployment Mode Comparison

Mode Protocol Plugin Location Plugin Sync Use Case
Monolithic N/A Local filesystem N/A Development, small deployments
Layered + HTTP HTTP REST Service Layer HTTP Proxy Simple multi-tier
Layered + gRPC gRPC Service Layer gRPC High-performance multi-tier
K8s + HTTP HTTP REST Shared PVC Redis + HTTP Cloud-native, HTTP only
K8s + gRPC gRPC + TLS Shared PVC Redis + gRPC Production, maximum performance

Plugin System (OSGi)

The platform features a JIRA-style plugin architecture using Apache Felix OSGi:

flowchart LR
    subgraph Host["Host Application"]
        SM[Spring Context]
        BR[Spring-OSGi Bridge]
        PM[Plugin Manager]
    end

    subgraph Felix["Apache Felix OSGi"]
        FW[Framework]
        SR[Service Registry]
        BL[Bundle Lifecycle]
    end

    subgraph Plugins["Plugin Bundles"]
        P1[Audit Plugin]
        P2[Custom Plugin]
        P3[SSR Views]
    end

    SM <--> BR
    BR <--> SR
    PM --> FW
    FW --> BL
    BL --> P1
    BL --> P2
    BL --> P3
    P1 --> SR
    P2 --> SR
    P3 --> SR

    style Host fill:#d1fae5
    style Felix fill:#fef3c7
    style Plugins fill:#dbeafe
Loading

Plugin Lifecycle

sequenceDiagram
    participant Admin as Administrator
    participant PM as Plugin Manager
    participant Felix as Apache Felix
    participant Bundle as Plugin Bundle
    participant Bridge as Spring-OSGi Bridge
    participant Spring as Spring Context

    Admin->>PM: installPlugin(jarFile)
    PM->>PM: Validate plugin descriptor
    PM->>Felix: installBundle(jar)
    Felix->>Bundle: Create bundle instance
    Felix-->>PM: Bundle installed (INSTALLED)

    Admin->>PM: enablePlugin(key)
    PM->>Felix: startBundle(bundleId)
    Felix->>Bundle: Activator.start()
    Bundle-->>Felix: Started (ACTIVE)

    Felix->>Bridge: onBundleStarted(bundle)
    Bridge->>Spring: registerBean(pluginServices)
    Bridge-->>PM: Plugin fully activated
    PM-->>Admin: Plugin enabled successfully
Loading

Plugin Extension Points

Extension Description Example
@RestEndpointExtension Add REST endpoints /api/v1/plugins/audit/entries
@ServiceExtension Register services AuditService
@EventListenerExtension Handle platform events UserEventListener
@ScheduledJobExtension Scheduled tasks AuditCleanupJob
@SSRViewExtension SSR-rendered views Plugin dashboards

Creating a Plugin

// Plugin main class
@ArcanaPlugin(
    key = "com.example.myplugin",
    name = "My Plugin",
    version = "1.0.0"
)
public class MyPlugin implements Plugin {
    @Override
    public void onEnable() {
        // Plugin enabled
    }

    @Override
    public void onDisable() {
        // Plugin disabled
    }
}

// REST extension
@RestEndpointExtension(
    key = "my-api",
    path = "/api/v1/plugins/myplugin"
)
@RestController
public class MyPluginController {
    @GetMapping("/hello")
    public String hello() {
        return "Hello from plugin!";
    }
}

Server-Side Rendering (SSR)

The SSR Engine supports both React (Next.js) and Angular Universal:

sequenceDiagram
    participant C as Browser
    participant S as Spring Boot
    participant E as SSR Engine
    participant G as GraalJS
    participant R as React/Angular

    C->>S: GET /dashboard
    S->>E: render(path, props)
    E->>E: Check Cache
    alt Cache Hit
        E-->>S: Cached HTML
    else Cache Miss
        E->>G: Execute JS
        G->>R: renderToString()
        R-->>G: HTML
        G-->>E: HTML
        E->>E: Cache Result
        E-->>S: Fresh HTML
    end
    S-->>C: HTML + Hydration Script
Loading

Quick Start

Prerequisites

  • Java 25 (OpenJDK 25.0.1 recommended)
  • Gradle 9.2.1+
  • Docker & Docker Compose
  • Node.js 20+ (for web apps)
  • MySQL 8.0+ / Redis 7.0+

IDE Setup (Eclipse)

For Eclipse IDE users, install the following:

  1. Eclipse IDE for Enterprise Java and Web Developers (2025-12 or later)

  2. Lombok Plugin - Required for annotation processing

    • Install via Eclipse Marketplace or add update site:
    • Update Site: https://projectlombok.org/p2
    • Go to: Help → Install New Software → Add → paste URL
  3. Spring Tools 4 (aka Spring Tool Suite) - Spring Boot development support

    • Version: 5.0.1.RELEASE or later
    • Install via Eclipse Marketplace: Help → Eclipse Marketplace → Search "Spring Tools"
    • Or add update site: https://cdn.spring.io/spring-tools/release/TOOLS/sts4/update/latest

1. Clone and Setup

git clone https://github.com/jrjohn/arcana-cloud-springboot.git
cd arcana-cloud-springboot
cp .env.example .env

2. Build the Project

# Build all Java modules
./gradlew build

# Build React app (optional)
cd arcana-web/react-app && npm install && npm run build

# Build Angular app (optional)
cd arcana-web/angular-app && npm install && npm run build:ssr

3. Run with Docker

# Monolithic mode (default)
./scripts/start-docker-monolithic.sh

# Layered mode with HTTP
COMMUNICATION_PROTOCOL=http ./scripts/start-layered.sh

# Layered mode with gRPC
COMMUNICATION_PROTOCOL=grpc ./scripts/start-layered.sh

4. Access the Application

Service URL
REST API http://localhost:8080
Swagger UI http://localhost:8080/swagger-ui.html
gRPC Server localhost:9090
Plugin Health http://localhost:8080/api/v1/plugins/health

API Endpoints

Authentication

Method Endpoint Description
POST /api/v1/auth/register Register new user
POST /api/v1/auth/login Login
POST /api/v1/auth/refresh Refresh token
POST /api/v1/auth/logout Logout

Plugins

Method Endpoint Description
GET /api/v1/plugins List all plugins
GET /api/v1/plugins/{key} Get plugin details
POST /api/v1/plugins/{key}/enable Enable plugin
POST /api/v1/plugins/{key}/disable Disable plugin
POST /api/v1/plugins/install Install plugin (multipart)
DELETE /api/v1/plugins/{key} Uninstall plugin
GET /api/v1/plugins/health Plugin system health

SSR

Method Endpoint Description
POST /api/v1/ssr/react/{component} Render React component
POST /api/v1/ssr/angular/{component} Render Angular component
GET /api/v1/ssr/status SSR engine status

Performance Benchmarks

Protocol Comparison (HTTP vs gRPC)

Operation HTTP (ms) gRPC (ms) Speedup
Get User ~9.0 ~1.5 6.0x
List Users ~11.0 ~9.0 1.2x
Create User ~16.0 ~12.0 1.3x
Update User ~14.0 ~10.0 1.4x
Delete User ~12.0 ~8.0 1.5x
Average ~12.5 ~7.5 2.5x

Deployment Mode Benchmarks

Performance comparison across all four distributed deployment modes based on simulated benchmarks with 50 concurrent users and 1KB payloads:

Mode Avg Latency P95 Latency P99 Latency Throughput Memory
Layered+gRPC 0.60ms 0.77ms 0.84ms 50,000 ops/s 50.3 MB
K8s+gRPC 0.80ms 1.05ms 1.15ms 40,000 ops/s 50.4 MB
Layered+HTTP 1.30ms 1.63ms 1.77ms 26,923 ops/s 50.6 MB
K8s+HTTP 1.50ms 1.88ms 2.02ms 23,333 ops/s 50.8 MB

Key Findings

graph LR
    subgraph Latency["Latency (Lower is Better)"]
        L1[Layered+gRPC<br/>0.60ms] --> L2[K8s+gRPC<br/>0.80ms]
        L2 --> L3[Layered+HTTP<br/>1.30ms]
        L3 --> L4[K8s+HTTP<br/>1.50ms]
    end

    style L1 fill:#22c55e
    style L2 fill:#84cc16
    style L3 fill:#facc15
    style L4 fill:#f97316
Loading
  • gRPC vs HTTP: gRPC is 2.2x faster in average latency and handles 1.7x more throughput
  • K8s vs Layered: Layered deployment has 25% lower latency (reduced network hops), K8s provides horizontal scalability
  • Protocol Efficiency: gRPC (Protobuf) payloads are ~35% smaller than JSON
  • HTTP/2 Multiplexing: gRPC handles 50 concurrent requests on a single connection

Plugin Operation Benchmarks

Operation K8s+gRPC K8s+HTTP Layered+gRPC Layered+HTTP
Plugin Registration 1.60ms 3.00ms 1.20ms 2.60ms
State Sync (3 nodes) 1.27ms 2.38ms 0.75ms 1.62ms
Lifecycle Ops/sec 490 286 667 338

Recommendations

Use Case Recommended Mode Reason
Maximum Performance Layered+gRPC Lowest latency (0.60ms), highest throughput
Production Cloud K8s+gRPC Auto-scaling, load balancing, fault tolerance
REST API Required K8s+HTTP Best HTTP option with orchestration benefits
Simple Deployment Layered+HTTP Easy setup, no gRPC infrastructure needed

Note: These benchmarks are simulated based on protocol characteristics. Production results may vary based on network conditions, hardware, and workload patterns. Run actual benchmarks with your specific use case for accurate measurements.

Configuration

Spring Cloud Config (Optional)

For centralized configuration management, enable Spring Cloud Config:

# Enable config server
spring.cloud.config.enabled=true
spring.cloud.config.uri=http://config-server:8888
spring.config.import=configserver:

See Spring Cloud Config Guide for detailed setup.

Environment Variables

Key environment variables:

Variable Description Default
DEPLOYMENT_MODE monolithic or layered monolithic
DEPLOYMENT_LAYER controller, service, repository -
COMMUNICATION_PROTOCOL http or grpc grpc
DATABASE_URL MySQL connection URL jdbc:mysql://localhost:3306/arcana_cloud
REDIS_HOST Redis host localhost
JWT_SECRET JWT signing secret -
GRPC_CLIENT_TLS_ENABLED Enable TLS for gRPC false

See application.properties for full configuration options.

Project Structure

arcana-cloud-springboot/
├── src/main/java/                   # Main application
│   └── com/arcana/cloud/
│       ├── controller/              # REST controllers
│       ├── service/                 # Business logic
│       │   ├── impl/                # Service implementations
│       │   ├── grpc/                # gRPC server implementations
│       │   └── client/              # gRPC/HTTP clients
│       ├── repository/              # Repository layer
│       │   ├── interfaces/          # Repository interfaces
│       │   └── impl/                # Repository implementations
│       ├── dao/                     # Data Access Objects
│       │   ├── interfaces/          # DAO interfaces
│       │   └── impl/
│       │       ├── jpa/             # JPA implementations
│       │       ├── mybatis/         # MyBatis implementations
│       │       └── mongodb/         # MongoDB implementations
│       ├── entity/                  # JPA entities
│       ├── document/                # MongoDB documents
│       ├── dto/                     # Data Transfer Objects
│       ├── mapper/                  # Object mappers
│       ├── config/                  # Configuration classes
│       └── security/                # Security components
│
├── arcana-plugin-api/               # Plugin SDK
├── arcana-plugin-runtime/           # OSGi Runtime
├── arcana-ssr-engine/               # SSR Engine
├── plugins/                         # Plugin bundles
│   └── arcana-audit-plugin/         # Sample plugin
├── arcana-web/                      # Web applications
│   ├── react-app/                   # Next.js
│   └── angular-app/                 # Angular Universal
├── deployment/                      # Docker & K8s configs
└── docs/                            # Documentation

Testing

The project includes 376 comprehensive tests covering unit tests, integration tests across all 5 deployment modes, plus authentication and user management workflows, Spring Cloud Config integration, Plugin API versioning, and deployment mode performance benchmarks.

Test Summary

Category Tests Status
Unit Tests 193 Passing
Integration Tests 160 Passing
Benchmark Tests 23 Passing
Total 376 100% Passing

Test Coverage by Feature

Test Suite Tests Description
Plugin API Versioning 33 Version parsing, comparison, compatibility checks, annotations
Spring Cloud Config 23 Config client, refresh scope, discovery, auto-configuration
Deployment Mode Benchmarks 23 K8s+gRPC, K8s+HTTP, Layered+gRPC, Layered+HTTP performance

Running Tests

# Run all tests
./gradlew test

# Run with coverage
./gradlew test jacocoTestReport

# View reports
open build/reports/tests/test/index.html
open build/reports/jacoco/test/html/index.html

Documentation

Deployment Guides

Development Guides

Reports

Architecture Evaluation

Overall Rating: ⭐⭐⭐⭐⭐ 9.30/10

Category Score Details
DAO/Repository Pattern 9.5/10 3 ORM implementations (JPA/MyBatis/MongoDB) with interface abstraction, runtime switching
Clean Architecture 9.0/10 5-layer separation (Controller→Service→Repository→DAO→DB) with clear boundaries
Database Portability 9.5/10 MySQL/PostgreSQL/MongoDB from single codebase with zero code changes
Scalability 9.0/10 5 deployment modes from monolithic to K8s with horizontal scaling
Extensibility 9.5/10 OSGi plugin system with hot-deployment, Spring integration, and API versioning
Protocol Support 9.0/10 Dual-protocol (gRPC + REST) with 2.5x performance gain
Security 9.5/10 JWT + OAuth2, TLS/mTLS, plugin bean whitelisting, JAR signature verification, audit logging
Resilience 9.5/10 Resilience4j circuit breakers with configurable thresholds, fallback handling
Testing 9.0/10 376 tests with 100% pass rate across all deployment modes
Modern Stack 9.5/10 Java 25, Spring Boot 4.0, Spring Cloud 2025.1, Gradle 9.2.1, GraalJS

Strengths

  • Multi-ORM DAO Layer: Switch between JPA, MyBatis, MongoDB via configuration - no code changes
  • Database Portability: MySQL ↔ PostgreSQL ↔ MongoDB with single codebase
  • Flexible Deployment: Single codebase supports 5 deployment configurations
  • Plugin Architecture: JIRA-style OSGi plugins with Spring-OSGi bridge and semantic versioning
  • Performance: gRPC provides 2.5x average speedup over REST
  • Cloud-Native: K8s-ready with distributed plugin sync via Redis
  • SSR Support: React and Angular rendering with GraalJS
  • Fault Tolerance: Circuit breakers prevent cascading failures in distributed deployments

Considerations

Aspect Trade-off Mitigation
Complexity Multiple abstraction layers add cognitive overhead Comprehensive documentation, clear naming
DAO Duplication 3 implementations per entity Only implement needed DAOs per project
Learning Curve OSGi + gRPC + multi-layer requires expertise Deployment guides, code examples
Memory Overhead Multiple protocols increase footprint Disable unused features in production

Architecture Patterns

graph LR
    subgraph Patterns["Architecture Patterns Used"]
        CA[Clean Architecture]
        DAO[DAO Pattern]
        REP[Repository Pattern]
        SL[Service Layer]
        DI[Dependency Injection]
        PL[Plugin Architecture]
        CB[Circuit Breaker]
        GW[API Gateway]
    end

    CA --> DAO
    DAO --> REP
    REP --> SL
    SL --> DI
    DI --> PL
    PL --> CB
    CB --> GW

    style Patterns fill:#e0f2fe
Loading
  • Clean Architecture / Hexagonal Architecture - Layer isolation with dependency inversion
  • DAO Pattern - Database abstraction with multiple ORM support
  • Repository Pattern - Collection-like interface for data access
  • Service Layer Pattern - Business logic encapsulation
  • Dependency Injection - Spring IoC container
  • Plugin Architecture - OSGi hot-deployment
  • Circuit Breaker Pattern - Resilience4j fault tolerance
  • API Gateway Pattern - Unified entry point

License

MIT License - see LICENSE file for details.


Built with Spring Boot 4.0 | Java 25 | Spring Cloud 2024.0 | Gradle 9.2.1 | Apache Felix OSGi 7.0.5 | gRPC | GraalJS

View Test Report

About

Enterprise-grade cloud platform with dual-protocol architecture (gRPC 2.5x faster / HTTP REST), OSGi Plugin System (Apache Felix) for hot-deployable extensions, Server-Side Rendering with GraalJS for React and Angular, supporting five deployment modes with full plugin synchronization across Kubernetes clusters.

Resources

Stars

Watchers

Forks

Packages

No packages published