Please describe your proposed solution.
Oura v1 has received good level of adoption judging by the activity on the Github repository. High-profile projects are using Oura either as a base library or to fulfill specific data integration roles within their infrastructure.
Project maintainers have managed to complete most of the development roadmap initially defined and have kept the codebase updated with required bug-fixes and upstream changes.
Regardless of this effort, we have identified, with the help of the community, several improvements that would require a high-level of dedication:
- Improve chain-sync performance by incorporating a new concurrency model at the multiplexer level. We expect at least 5x speed improvement in node-to-client connections.
- An overhaul of the event data model that focuses on less type of events and more nested structures, allowing consumer to process the full Tx payloads.
- A new type of filter / sink that allows user to run custom code by providing WebAssembly file. This will allow integrators to integrate their downstream services without the need of a broker.
- New sinks that integrate directly with stream-processing services from Azure cloud provider.
- Finalize the ongoing effort to include new sinks that integrate directly with stream-processing services from Google Cloud Platform, such as PubSub and Cloud Functions.
- A new Kafka data source that would allow integrators to consume event from topics already populated with chain data. This opens the possibility to execute several Oura instances consuming from a single Kafka topic, without the need for a direct connection to the Cardano node.
- A new AWS S3 data source that would allow Oura to read from a pre-populated bucket of raw block data. This is useful for workloads that require to traverse the whole history without impacting on the performance of their Cardano node.
Please describe how your proposed solution will address the Challenge that you have submitted it in.
Adding the described features to Oura will provide new data integration options. Having new tech-stacks and services integrated with Cardano data will widen the spectrum of tools available, improving the chances for developer adoption.
Improved performance and data model will open up the possibilities for new use-cases.
What are the main risks that could prevent you from delivering the project successfully and please explain how you will mitigate each risk?
Our experience developing Oura v1 allows us to estimate the LoE for this proposal with a high level of accuracy. Regardless of this advantage, there are some known-unknowns that could present a risk:
- Our development methodology is driven by community feedback. Committing to a strict and specific set of features in advance might limit the capacity to adapt to feedback during the development phase.
- Proposed changes require breaking compatibility at the config, data and library levels. Communicating and supporting the existing Oura users during the migration to the new version will require effort. Estimating this effort is very difficult on an open-source project without strict knowledge of the existing implementations.