Skip to content

RFC v6.0.0: Karton Gateway feature #301

@psrok1

Description

@psrok1

Hello,

Karton began as a pretty simple wrapper around redis-py and minio-py to meet the basic needs of building malware analysis microservice pipelines (well... the very first versions actually used RabbitMQ and pika - that was before going open source!). As Karton has grown in features and new performance requirements, the current design has become a huge limitation, making further improvements increasingly difficult.

Right now:

  • Fine-grained access control isn’t possible; we’re limited to basic username/password authentication.
  • Changing task representation in the backend is cumbersome—HSET would be better so we don’t need to parse the entire JSON just to update a status.
  • Scaling beyond the current architecture remains a significant challenge.

To address these issues, version 6.0.0 will introduce a new middleware service: Karton Gateway. It will serve as an interface for all Karton operations. Karton Gateway is a simple FastAPI-based webserver communicating with services via Websockets and REST API. It's designed to be stateless and easily scalable, allowing you to run multiple instances of it behind a load balancer.

Image

Direct Redis/S3 connection will be still supported as a "direct backend", so migration to the new interface can be gradual. However, that way of connecting to Karton will be deprecated and removed in the next major release (v7). v6 version is going to support Karton services 5.0.0+. v7 version will support 6.0.0+ services only.

Metadata

Metadata

Assignees

No one assigned

    Labels

    improvementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions