Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Spike] Query Executor in Rust #135

Merged
merged 4 commits into from
Oct 1, 2020
Merged

[Spike] Query Executor in Rust #135

merged 4 commits into from
Oct 1, 2020

Commits on Sep 30, 2020

  1. Initial working implementation of execution

    This commit is a first take at porting over execution from the
    TypeScript implementation as well as surrounding scaffolding for a PoC
    server runtime and process manager. This is an initial stab for feedback
    and will be split up into multiple commits for review in different PRs
    around structure, execution, and basic server scaffold after testing is
    done.
    jbaxleyiii authored and Ran Magen committed Sep 30, 2020
    Configuration menu
    Copy the full SHA
    4130997 View commit details
    Browse the repository at this point in the history
  2. Stargate suggestions to #135 + actix-web support (#186)

    This PR was developed on top of #135
    
    First and foremost, any changes to the existing _executor.rs_ and related code written in #135 are mostly there as **suggestions**. @jbaxleyiii lmk if you want to pair on these or feel free to take / reject parts. I didn't dig too deep into the implementation of the executor yet, I'm going to start doing that this week.
    
    Second: This PR separates out the Stargate library from the binary, for a few reasons:
    1. Separating out the business logic from the wrapping server makes for easier testing.
    2. The library doesn't choose an async runtime, nor does it assume any specific implementation of an HTTP server.
    3. Use actix-web instead of tide; we've discussed these options and feel more comfortable going with a more mature server implementation, as well as one that uses tokio.
    
    @jbaxleyiii If these changes look good, we can merge them into #135 and we can continue from there. If you want to do it differently, lmk!
    
    - [ ] Address `todo!` / `unimplemented!` / `FIXME` in the code
    - [ ] Tests for the executor (ideally these should be unit tests on the Stargate library, for coverage)
    - [ ] Integration tests. I was thinking we can set up acephei services locally and then the gateway would have `localhost` references to those on different ports, integration tests would be entirely localhost.
    - [ ] Add tracing/metrics middleware -- I believe there are some existing crates.
    - [ ] Write more log lines so that they're integrated with the logger of the http server (use `env_logger` ?)
    Ran Magen committed Sep 30, 2020
    Configuration menu
    Copy the full SHA
    e4eab54 View commit details
    Browse the repository at this point in the history
  3. Adapt Dockerfile to changes

    Ran Magen committed Sep 30, 2020
    Configuration menu
    Copy the full SHA
    cf8a0bb View commit details
    Browse the repository at this point in the history

Commits on Oct 1, 2020

  1. Feedback from @abernix

    Ran Magen committed Oct 1, 2020
    Configuration menu
    Copy the full SHA
    7230db0 View commit details
    Browse the repository at this point in the history