Skip to content

[EPIC] Phase 2: Architecture - Modularity, Extensibility, API Design #2976

@robfrank

Description

@robfrank

Phase 2: Architecture (Months 3-5)

Goals: Improve modularity, extensibility, API design

Duration: 3 months
Dependencies: Phase 1 Complete

Objectives

Month 3: Storage Abstraction

  • Design StorageBackend interface for pluggable storage backends
  • Implement FileSystemStorage (refactor ComponentFile)
  • Implement InMemoryStorage for testing
  • Add storage backend configuration system
  • Migrate 50% of codebase to use abstraction

Month 4: Service Provider Interface

  • Define Query Engine SPI
  • Define Index Type SPI
  • Migrate existing query engines to SPI (SQL, Cypher, Gremlin)
  • Migrate existing index types to SPI (LSM, Vector, FullText)
  • Create extension developer guide
  • Create sample third-party plugin

Month 5: API/SPI Separation

  • Create arcadedb-api module (stable public API)
  • Create arcadedb-spi module (extension points)
  • Add Java module descriptors (JPMS)
  • Update engine to use API module
  • Create API backward compatibility tests
  • Publish API documentation

Deliverables

  • arcadedb-api module (v1.0.0)
  • arcadedb-spi module (v1.0.0)
  • 3 storage backends working (FileSystem, InMemory, and extensible for S3/cloud)
  • Extension developer guide
  • API documentation published

Success Metrics

  • 3+ storage implementations
  • 5+ plugins using SPI
  • API backward compatibility tests passing
  • Third-party plugin example working
  • 100% API JavaDoc coverage

Related Tasks

Tasks TASK-P2-001 through TASK-P2-017 will be created as individual issues linked to this epic.


Part of the ArcadeDB Evolution Project - see IMPROVEMENT_PLAN.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestparent-issueLabel to mark issues used to group related topics

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions