You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The current state of async query APIs in the Spark module has several limitations and challenges that need to be addressed. The async query APIs are tightly coupled with OpenSearch dependencies, which are spread across the codebase. This tight coupling makes it difficult to adopt and utilize the async query functionality in cloud-native applications.
New Module Structure
async-query-core: This module contains the core business logic without concrete implementations of storage and configs. It should not have any dependencies on OpenSearch functionality.
async-query-rest: This module contains the REST layer along with the necessary implementations of storage and config. It can still exist in the Spark module or can be separated out.
Plan to Achieve
Refactor all the cluster settings dependencies:
* Create config supplier interfaces to abstract the cluster settings.
* Implement concrete implementations of the config supplier interfaces using OpenSearch cluster settings.
Refactor all the storage dependencies:
* Define appropriate storage service interfaces to abstract the storage functionality.
* Implement default storage service implementations using OpenSearch as the underlying storage.
Refactor all the NodeClient dependencies:
* Create appropriate interfaces to abstract out the NodeClient functionality.
* Implement the necessary interfaces to replace direct usage of NodeClient.
Move the core logic and new interfaces to the new async-query-core module:
* Identify and extract the core business logic that does not depend on OpenSearch functionality.
* Move the extracted core logic and newly created interfaces to the async-query-core module.
* Ensure that the async-query-core module does not have any dependencies on OpenSearch.
The text was updated successfully, but these errors were encountered:
Motivation:
The current state of async query APIs in the Spark module has several limitations and challenges that need to be addressed. The async query APIs are tightly coupled with OpenSearch dependencies, which are spread across the codebase. This tight coupling makes it difficult to adopt and utilize the async query functionality in cloud-native applications.
New Module Structure
Plan to Achieve
* Create config supplier interfaces to abstract the cluster settings.
* Implement concrete implementations of the config supplier interfaces using OpenSearch cluster settings.
* Define appropriate storage service interfaces to abstract the storage functionality.
* Implement default storage service implementations using OpenSearch as the underlying storage.
* Create appropriate interfaces to abstract out the NodeClient functionality.
* Implement the necessary interfaces to replace direct usage of NodeClient.
* Identify and extract the core business logic that does not depend on OpenSearch functionality.
* Move the extracted core logic and newly created interfaces to the async-query-core module.
* Ensure that the async-query-core module does not have any dependencies on OpenSearch.
The text was updated successfully, but these errors were encountered: