pratikgajjar / factstore

Open source event (fact) sourcing db written in RUST

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

factstore

Open source distributed event (fact) sourcing database written in #rust

GTM

Week 1:

Set up the project structure:
    Initialize a new Rust project.
    Create the necessary directories and modules.

Implement basic event storage:
    Define the event structure.
    Set up file I/O for event storage.
    Implement event appending and reading.

Design and implement stream management:
    Define stream metadata structure.
    Develop stream creation and retrieval mechanisms.

Week 2:

Enhance event storage:
    Add support for event versioning or timestamps.
    Implement basic concurrency control mechanisms.

Improve stream management:
    Implement stream deletion and update functionalities.

Begin designing and implementing projections:
    Define the projection logic and structures.
    Start working on basic projection transformations.

Week 3:

Refine concurrency control:
    Improve the conflict resolution mechanism.
    Enhance concurrency handling for multiple writers.

Complete basic projections:
    Implement the remaining transformation logic.
    Test and validate basic projections.

Start networking and API development:
    Define the API endpoints for event storage, stream management, and projections.
    Set up the necessary networking libraries.

Week 4:

Finalize networking and API implementation:
    Implement the handlers for each API endpoint.
    Test the API functionality using appropriate tools (e.g., Postman).

Perform comprehensive testing:
    Write unit tests for different modules and functionalities.
    Develop integration tests for end-to-end scenarios.

Begin performance optimization:
    Profile the code and identify areas for optimization.
    Start optimizing critical sections for better performance.

Week 5:

Continuation of performance optimization:
    Analyze bottlenecks and apply optimization techniques.
    Conduct benchmarking and evaluate performance improvements.

Documentation:
    Document the project structure, modules, and APIs.
    Create user guides and installation instructions.
    Update the README file and add relevant project documentation.

Finalize the project:
    Refactor and clean up code as necessary.
    Perform a thorough code review and resolve any issues.

About

Open source event (fact) sourcing db written in RUST

License:GNU General Public License v3.0


Languages

Language:Rust 100.0%