diff --git a/design/design.go b/design/design.go
index 5ac91e87e715bbdbd1946381a1eaabda5b9dc4a2..1b8d82d949afcf60654a2bf2251d6690e66ecdca 100644
--- a/design/design.go
+++ b/design/design.go
@@ -41,10 +41,10 @@ var _ = Service("cache", func() {
 	Description("Cache service allows storing and retrieving data from distributed cache.")
 
 	Method("Get", func() {
-		Description("Get value from the cache. The result is a sequence of bytes which the client must decode.")
+		Description("Get JSON value from the cache.")
 
 		Payload(CacheGetRequest)
-		Result(Bytes)
+		Result(Any)
 
 		HTTP(func() {
 			GET("/v1/cache")
diff --git a/internal/clients/redis/client.go b/internal/clients/redis/client.go
index 0b1f1c993de879d277aa217a2876cb5dd7571375..fbe9f5240a879a114e59e4a3d840ec285067998e 100644
--- a/internal/clients/redis/client.go
+++ b/internal/clients/redis/client.go
@@ -31,7 +31,7 @@ func New(addr, user, pass string, db int, defaultTTL time.Duration) *Client {
 	}
 }
 
-func (c *Client) Get(ctx context.Context, key string) ([]byte, error) {
+func (c *Client) Get(ctx context.Context, key string) (interface{}, error) {
 	result := c.rdb.Get(ctx, key)
 	if result.Err() != nil {
 		if result.Err() == redis.Nil {
@@ -39,7 +39,7 @@ func (c *Client) Get(ctx context.Context, key string) ([]byte, error) {
 		}
 		return nil, result.Err()
 	}
-	return []byte(result.Val()), nil
+	return result.Val(), nil
 }
 
 func (c *Client) Set(ctx context.Context, key string, value []byte, ttl time.Duration) error {
diff --git a/internal/service/cache/service.go b/internal/service/cache/service.go
index ee824a4c989d4542273e2f334d20e62c1c852a76..7c4357f97ebbc3de9daba45752af072d0d2e5686 100644
--- a/internal/service/cache/service.go
+++ b/internal/service/cache/service.go
@@ -13,7 +13,7 @@ import (
 )
 
 type Cache interface {
-	Get(ctx context.Context, key string) ([]byte, error)
+	Get(ctx context.Context, key string) (interface{}, error)
 	Set(ctx context.Context, key string, value []byte, ttl time.Duration) error
 }
 
@@ -29,7 +29,7 @@ func New(cache Cache, logger *zap.Logger) *Service {
 	}
 }
 
-func (s *Service) Get(ctx context.Context, req *cache.CacheGetRequest) ([]byte, error) {
+func (s *Service) Get(ctx context.Context, req *cache.CacheGetRequest) (interface{}, error) {
 	var operation = zap.String("operation", "get")
 	if req.Key == "" || req.Namespace == "" || req.Scope == "" {
 		s.logger.Error("bad request: missing key or namespace or scopes", operation)