manomayam / manas

Manas project aims to create a modular framework and ecosystem to create robust storage servers adhering to Solid protocol in rust.
https://manomayam.github.io/manas/
Apache License 2.0
72 stars 9 forks source link

What I'm Looking for in Manas #28

Open jaxoncreed opened 1 year ago

jaxoncreed commented 1 year ago

I was asked to share some thoughts on what I would like out of Manas. Hopefully this helps.

  1. Number 1 is PERFORMANCE. As a rust server, Manas has the potential to blow everything else out of the water. Seeing some performance tests and how it scales based on number of requests would be awesome.
  2. Easy configurability: This will come with maturity, but I'd love to be able to fine tune many options including whether or not it's deployed with an IDP.
  3. Some architecture considerations. CSS and ESS both have some architectural problems that prevent it from doing authenticated search (a feature that I would LOVE to have). I'd love to discuss this with you if you have the time.
  4. Lack of bugs: This will just come with time as well. I'll try to test apps I build on Manas too to see if I encounter bugs
  5. Shardability: When I can't scale up, I want to scale out. Can we run multiple servers of Manas as the same instance?
  6. ISO 27001 compliance: If this server had all the technical requirements under ISO 27001, so that a client of mine just needs to worry about the organizational requirements, I would pick Manas over any other server in an instant.
damooo commented 1 year ago

Thanks a lot!.

Number 1 is PERFORMANCE:

Indeed it is priority. Note that, as storage server is io intensive than computation intensive, much of the performance story depends on how efficiently it translates resource operations to backend operations. Manas was designed to take full advantage of backend capabilities. For eg. it uses naive range request capability of backends when supported. It also reuses list metadata from object stores. Thus container rep can be computed from 1 request instead of 1 + n requests in case of fs backend. Many such optimal usage patterns. And architecture supports to add any augmented indices as well.

  1. Easy configurability:

Soon multi pod provisioning, notifications, etc are landing. Then the proper config schema will be finalized. There is a plan to create an interactive config generator too.

  1. Authenticated searches:

Solid protocol currently doesn't standardize a query interface. TPF, QPF support provided by ESS is also global, and multi tenant. For an app i am building, this is also a consideration. I am actively exploring the space. See also: https://github.com/Telicent-io/public-rdf-abac

Lack of bugs:

Manas is written in a type driven way following Ghost of departed proofs paradigm. Thus a lot many bug possibilities are , as invalid states are made not representable in rust. Along with that rigorous test suite is in progress.

Shardability:

Yes, horizontal scalability is project's stated aim. Architecture took lot of care to made that possible. Once notifications support is landed, a proper guide, and devop helpers will be created.

It will be improving very much regularly.

Along with that, your apps can also be packaged as native apps. Tauri support will be landed this week.

Thanks for feedback.