diff --git a/go.mod b/go.mod
index 3f3dd81507f630fcab046a1394731cfc04e6713a..b596a7f4ec018ec09971cadb68ead43af7934c5f 100644
--- a/go.mod
+++ b/go.mod
@@ -9,6 +9,7 @@ require (
 	github.com/json-iterator/go v1.1.12
 	github.com/mailgun/multibuf v0.2.0
 	github.com/stretchr/testify v1.9.0
+	github.com/valyala/bytebufferpool v1.0.0
 	golang.org/x/net v0.22.0
 	golang.org/x/sync v0.6.0
 )
diff --git a/go.sum b/go.sum
index 137899251a8b572b6e9c721e05cb1ef368307c49..3db524eeeb9298babdc25843be3a3860282baea6 100644
--- a/go.sum
+++ b/go.sum
@@ -33,6 +33,8 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
 github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
 github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
+github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
+github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
 golang.org/x/exp v0.0.0-20230206171751-46f607a40771 h1:xP7rWLUr1e1n2xkK5YB4LI0hPEy3LJC6Wk+D4pGlOJg=
 golang.org/x/exp v0.0.0-20230206171751-46f607a40771/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
 golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc=
diff --git a/pkg/jjson/json.go b/pkg/jjson/json.go
index 8d685b6946aa392c2db522ada7c6defd1d02e964..fe3043f8c6ec66d71352736bc31ca32efe8374cb 100644
--- a/pkg/jjson/json.go
+++ b/pkg/jjson/json.go
@@ -6,6 +6,7 @@ import (
 	"io"
 
 	jsoniter "github.com/json-iterator/go"
+	"github.com/valyala/bytebufferpool"
 )
 
 var encPool = NewPool()
@@ -17,9 +18,9 @@ var jConfig = jsoniter.Config{
 }.Froze()
 
 func MarshalAndEncode(w io.Writer, v any) error {
-	d := encPool.Get()
-	defer encPool.Put(d)
-	err := Encode(w, v)
+	d := bytebufferpool.Get()
+	defer bytebufferpool.Put(d)
+	err := Encode(d, v)
 	if err != nil {
 		return err
 	}