Zigzag encoding
<code class="markdown-inline">The values for INT and LONG fields are represented using zig-zag encoding, so that smaller absolute values require fewer bits</code>, document của Netflix Hollow có 1 dòng như thế này, google thì cũng không có nhiều về topic này và khá sơ sài, vậy zig-zag enconding là gì mà có thể optimise được việc truyền và xử lí dữ liệu, mong nhận được giải đáp.
Database for micro-service
Theo RedHat hay Baeldung suggest thì em thấy có 1 khẩu quyết là "One database per service", nó sẽ thiên về nghĩa nào nhiều hơn ạ:
<p>
</p>
<ol start="1">
<li>Dùng 1 instance (mysql) và tạo nhiều database trên đó cho mỗi service.
</li>
</ol>
<p>
</p>
<ol start="2">
<li>Dùng nhiều instance và mỗi instance có 1 database cho service.</li></ol>
Store data in redis/memcache
Giả sử domain Product trong SQL có reference tới table Seller và giờ em đang muốn sử dụng cache để lưu 1 chi tiết Product lại, nếu flatten 1 product ra như 1 json document thì sẽ lợi khi về dung lượng lưu trữ và tốc độ get tuy nhiên em đang không biết invalidate cache như thế nào khi Seller bị update, không biết có cách nào để tổ chức cache hợp lí cho việc invalidate và get data không ạ.
C<h1>EmailAddress annotaion</h1>
Hàm IsValid của EmailAddress annotation dùng để validate email, em đọc lướt qua thì thấy build in của Microsoft chỉ kiểm tra kí tự xuống dòng và có duy nhất 1 '@', vậy nếu email có khoảng trắng hoặc 2 dấu . liên tiếp như example@mail..com thì sẽ pass, 2 case này theo tiêu chuẩn email có đúng không ạ.
<p>
</p>
<img class="content-img" src="https://stackask.com/wp-content/uploads/2023/02/EmailAddressAnnotaion.jpg" />
Use k6 to run load test
Hi mọi người, em đang dùng k6 để performance test cho 1 service bằng golang với 2 kiến trúc khác nhau tạm gọi A và B, khi benchmark A thì handle 29 req/s và p(95) ở level 8ms, còn với B thì sẽ <s> 750 req/s tuy nhiên p(95) khoảng 300ms thì mình có thể nói B có performance tốt hơn ko ạ :^)</s>
Postgres connection pool
Em đang có 1 node chạy bằng go, nếu em dùng connection pool để kết nối node này đến Postgres thì đó có phải là connection per request không ạ.
Passing environment vairable to react app at runtime
Theo em hiểu thì khi react build các biến môi trường trong file <code>.env</code> cũng sẽ được sử dụng vào compile time, ví dụ biến <code>REACT_APP_API_V1</code> trong file .env và build Docker image thì khi dùng <code>proccess.env.REACT_APP_API_V1</code> sẽ là giá trị được compile, làm sao để truyền biến này như một environment trong docker-compose.yaml khi runtime được ạ.
Consistent hashing in Kong mode db-less
Em đang dùng Kong ở mode db-less, giờ em muốn enable consistent hashing cho x-forwarded-to ở header thì cần khai báo trong yaml như nào ạ.
Golang return gzip content as API
Em đang dùng redis để cache data product (như code dưới)
<p>
</p>
<pre>
productBytes, _ := json.Marshal(product)
bf := bytes.Buffer{}
gw := gzip.NewWriter(&bf)
gw.Write(productBytes)
cacheErr := cache.Set(bgCtx, idParam, bf.Bytes(), 60*time.Second).Err()
</pre>
<p>
</p>
<p>
Giờ em muốn có 1 api trả về ngay kết quả được cache trong redis dưới dạng gzip và http sẽ tự unpack nó ra có được không ạ. Em có search thì thấy http có hỗ trợ content-encoding gzip nhưng chưa biết cách làm, a/c có code mẫu càng tốt ạ :3
</p>
Write and read only for MySql replica in Golang
Em đang muốn triển khai 1 service bằng Golang kết nối với 1 cụm MySql replica cụ thể sẽ write vào master và chỉ đọc từ các slave, ví dụ với MongoDb thì em chỉ cần định nghĩa tất cả trong connectionString và mongo sẽ lo việc ghi vào master và đọc từ slave. Không biết MySql có hỗ trợ hay Golang có package nào hỗ trợ như vậy được không ạ.
Best http payload with multiple files
Hiện em đang làm dotnet và muốn triển khai tính năng upload nhiều file rồi mình sẽ lưu trên Azure, em muốn hỏi là 1 http request thì payload size bao nhiêu là tốt nhất ạ, ví dụ em mỗi file của em là pdf và nặng trung bình khoảng 600kb.
Specify Kong services/routes use plugin
Ví dụ trong Kong em đang có các service A, B, C và mỗi service có khoảng 5 route. Em cần apply plugin JWT cho A, và 1 vài route ở B thì có cách nào để config trong file yaml thay vì config cho từng service/route trong plugin (như ảnh) không ạ. Thanks!<img class="content-img" src="https://stackask.com/wp-content/uploads/2022/10/code.png" />