collado-mike opened a new issue, #526:
URL: https://github.com/apache/polaris/issues/526

   ### Is your feature request related to a problem? Please describe.
   
   Currently, the `PolarisMetaStoreManager` is the central interface to:
   
   * Persistence and retrieval of persisted entities
   * Storage and validation of secrets
   * Privilege/grant management
   * Entity cache validation/eviction/refresh
   * Credential vending
   
   #417 did some initial work to break up the interface into multiple 
interfaces so that components can depend on the specific functionality they 
require (i.e., persistence only or credential vending only), but the core 
interface itself still extends all of these interfaces and any metastore 
implementation must implement all of the methods in every interface. This makes 
it very difficult to swap out components for specialized tools, such as Vault 
for secrets management or redis for distributed caches or some policy-based 
grant manager.
   
   ### Describe the solution you'd like
   
   The `PolarisMetaStoreManager` interface should no longer depend on any of 
the other interfaces and should contain persistence-only method definitions. 
This allows for persistence implementations to focus only on entity storage and 
retrieval, while other components can be responsible for implementing secrets 
management or credential vending. Furthermore, the cache logic should be 
refactored so that business components, such as the `PolarisServiceImpl` don't 
need to know anything about the entity cache, but can deal with the persistence 
interface directly. Caching may be implemented under the hood, but that should 
be transparent to the business components.
   
   ### Describe alternatives you've considered
   
   _No response_
   
   ### Additional context
   
   I've started a doc at 
https://docs.google.com/document/d/1MNCdW-uKVZaR5Ua91FDwxhreBeGjPOoV-CyF0WOWwIg/edit?tab=t.0
 that can be used to iterate on a class design so that it's clear how 
responsibilities are divided. This should prevent multiple people from making 
conflicting changes while the core components are being refactored.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to