Skip to content

Move implementation logic/details from BackupClientInterface to another private trait #198

@mdedetrich

Description

@mdedetrich

What is currently missing?

Currently if you look at https://github.com/aiven/guardian-for-apache-kafka/blob/main/core-backup/src/main/scala/io/aiven/guardian/kafka/backup/BackupClientInterface.scala both the public interface (i.e. all methods that are public) in BackupClientInterface is mixed with all of the implementation details/backup core logic which are private

How could this be improved?

All of the private implementation details (and implementation of the core logic behind BackupClientInterface itself) should be moved to another trait, likely called BackupClientInterfaceImpl which is package private. BackupClientInterface can then extend BackupClientInterfaceImpl.

This will make it ultra clear what is the public interface, i.e. BackupClientInterface. Can also help with Java interopt since BackupClientInterface will essentially be the same as a Java interface.

Is this a feature you would work on yourself?

  • I plan to open a pull request for this feature

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions