diff --git a/.gitignore b/.gitignore
index 06d46ba..a38a254 100644
--- a/.gitignore
+++ b/.gitignore
@@ -156,3 +156,4 @@ keys
htmlcov/
tmp/
static/
+nohup.out
diff --git a/bench/results/v1/nopooling/nopipelining/exceptions_1703596542.3302553.csv b/bench/results/v1/nopooling/nopipelining/exceptions_1703596542.3302553.csv
new file mode 100644
index 0000000..5e0e870
--- /dev/null
+++ b/bench/results/v1/nopooling/nopipelining/exceptions_1703596542.3302553.csv
@@ -0,0 +1 @@
+Count,Message,Traceback,Nodes
diff --git a/bench/results/v1/nopooling/nopipelining/failures_1703596538.1889129.csv b/bench/results/v1/nopooling/nopipelining/failures_1703596538.1889129.csv
new file mode 100644
index 0000000..f87ff75
--- /dev/null
+++ b/bench/results/v1/nopooling/nopipelining/failures_1703596538.1889129.csv
@@ -0,0 +1 @@
+Method,Name,Error,Occurrences
diff --git a/bench/results/v1/nopooling/nopipelining/report_1703596547.3589835.html b/bench/results/v1/nopooling/nopipelining/report_1703596547.3589835.html
new file mode 100644
index 0000000..a17ac43
--- /dev/null
+++ b/bench/results/v1/nopooling/nopipelining/report_1703596547.3589835.html
@@ -0,0 +1,592 @@
+
+
+
+ Test Report for locustfile.py
+
+
+
+
+
+
Locust Test Report
+
+
+
+
During: 2023-12-26 13:14:12 - 2023-12-26 13:15:15
+
Target Host: http://localhost:9001
+
Script: locustfile.py
+
+
+
+
Request Statistics
+
+
+
+ Method |
+ Name |
+ # Requests |
+ # Fails |
+ Average (ms) |
+ Min (ms) |
+ Max (ms) |
+ Average size (bytes) |
+ RPS |
+ Failures/s |
+
+
+
+
+
+ POST |
+ http://localhost:9001/write |
+ 70718 |
+ 0 |
+ 303 |
+ 5 |
+ 939 |
+ 97 |
+ 1117.2 |
+ 0.0 |
+
+
+
+ |
+ Aggregated |
+ 70718 |
+ 0 |
+ 303 |
+ 5 |
+ 939 |
+ 97 |
+ 1117.2 |
+ 0.0 |
+
+
+
+
+
+
+
+
Response Time Statistics
+
+
+
+ Method |
+ Name |
+ 50%ile (ms) |
+ 60%ile (ms) |
+ 70%ile (ms) |
+ 80%ile (ms) |
+ 90%ile (ms) |
+ 95%ile (ms) |
+ 99%ile (ms) |
+ 100%ile (ms) |
+
+
+
+
+
+ POST |
+ http://localhost:9001/write |
+ 300 |
+ 320 |
+ 350 |
+ 390 |
+ 430 |
+ 470 |
+ 550 |
+ 940 |
+
+
+
+ |
+ Aggregated |
+ 300 |
+ 320 |
+ 350 |
+ 390 |
+ 430 |
+ 470 |
+ 550 |
+ 940 |
+
+
+
+
+
+
+
+
+
+
+
+
+
Charts
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bench/results/v1/nopooling/nopipelining/requests_1703596527.64889.csv b/bench/results/v1/nopooling/nopipelining/requests_1703596527.64889.csv
new file mode 100644
index 0000000..acc97a3
--- /dev/null
+++ b/bench/results/v1/nopooling/nopipelining/requests_1703596527.64889.csv
@@ -0,0 +1,3 @@
+Type,Name,Request Count,Failure Count,Median Response Time,Average Response Time,Min Response Time,Max Response Time,Average Content Size,Requests/s,Failures/s,50%,66%,75%,80%,90%,95%,98%,99%,99.9%,99.99%,100%
+POST,http://localhost:9001/write,70718,0,300,303.8036002149382,5,939,97.84323651686982,1117.209290974752,0.0,300,340,370,390,430,470,510,550,770,930,940
+,Aggregated,70718,0,300,303.8036002149382,5,939,97.84323651686982,1117.209290974752,0.0,300,340,370,390,430,470,510,550,770,930,940
diff --git a/bench/results/v1/nopooling/pipelining/exceptions_1703596422.549709.csv b/bench/results/v1/nopooling/pipelining/exceptions_1703596422.549709.csv
new file mode 100644
index 0000000..5e0e870
--- /dev/null
+++ b/bench/results/v1/nopooling/pipelining/exceptions_1703596422.549709.csv
@@ -0,0 +1 @@
+Count,Message,Traceback,Nodes
diff --git a/bench/results/v1/nopooling/pipelining/failures_1703596416.618265.csv b/bench/results/v1/nopooling/pipelining/failures_1703596416.618265.csv
new file mode 100644
index 0000000..f87ff75
--- /dev/null
+++ b/bench/results/v1/nopooling/pipelining/failures_1703596416.618265.csv
@@ -0,0 +1 @@
+Method,Name,Error,Occurrences
diff --git a/bench/results/v1/nopooling/pipelining/report_1703596427.8566117.html b/bench/results/v1/nopooling/pipelining/report_1703596427.8566117.html
new file mode 100644
index 0000000..dacc8ae
--- /dev/null
+++ b/bench/results/v1/nopooling/pipelining/report_1703596427.8566117.html
@@ -0,0 +1,592 @@
+
+
+
+ Test Report for locustfile.py
+
+
+
+
+
+
Locust Test Report
+
+
+
+
During: 2023-12-26 13:12:13 - 2023-12-26 13:13:24
+
Target Host: http://localhost:9001
+
Script: locustfile.py
+
+
+
+
Request Statistics
+
+
+
+ Method |
+ Name |
+ # Requests |
+ # Fails |
+ Average (ms) |
+ Min (ms) |
+ Max (ms) |
+ Average size (bytes) |
+ RPS |
+ Failures/s |
+
+
+
+
+
+ POST |
+ http://localhost:9001/pipeline/write |
+ 70 |
+ 0 |
+ 9854 |
+ 7898 |
+ 12282 |
+ 98842 |
+ 1.0 |
+ 0.0 |
+
+
+
+ |
+ Aggregated |
+ 70 |
+ 0 |
+ 9854 |
+ 7898 |
+ 12282 |
+ 98842 |
+ 1.0 |
+ 0.0 |
+
+
+
+
+
+
+
+
Response Time Statistics
+
+
+
+ Method |
+ Name |
+ 50%ile (ms) |
+ 60%ile (ms) |
+ 70%ile (ms) |
+ 80%ile (ms) |
+ 90%ile (ms) |
+ 95%ile (ms) |
+ 99%ile (ms) |
+ 100%ile (ms) |
+
+
+
+
+
+ POST |
+ http://localhost:9001/pipeline/write |
+ 9700 |
+ 10000 |
+ 10000 |
+ 11000 |
+ 12000 |
+ 12000 |
+ 12000 |
+ 12000 |
+
+
+
+ |
+ Aggregated |
+ 9700 |
+ 10000 |
+ 10000 |
+ 11000 |
+ 12000 |
+ 12000 |
+ 12000 |
+ 12000 |
+
+
+
+
+
+
+
+
+
+
+
+
+
Charts
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bench/results/v1/nopooling/pipelining/requests_1703596408.0321012.csv b/bench/results/v1/nopooling/pipelining/requests_1703596408.0321012.csv
new file mode 100644
index 0000000..79b7ad8
--- /dev/null
+++ b/bench/results/v1/nopooling/pipelining/requests_1703596408.0321012.csv
@@ -0,0 +1,3 @@
+Type,Name,Request Count,Failure Count,Median Response Time,Average Response Time,Min Response Time,Max Response Time,Average Content Size,Requests/s,Failures/s,50%,66%,75%,80%,90%,95%,98%,99%,99.9%,99.99%,100%
+POST,http://localhost:9001/pipeline/write,70,0,9700,9854.628571428571,7898,12282,98842.68571428572,0.9866591262400619,0.0,9700,10000,11000,11000,12000,12000,12000,12000,12000,12000,12000
+,Aggregated,70,0,9700,9854.628571428571,7898,12282,98842.68571428572,0.9866591262400619,0.0,9700,10000,11000,11000,12000,12000,12000,12000,12000,12000,12000
diff --git a/bench/results/v1/pooling/nopipelining/exceptions_1703596030.9513938.csv b/bench/results/v1/pooling/nopipelining/exceptions_1703596030.9513938.csv
new file mode 100644
index 0000000..5e0e870
--- /dev/null
+++ b/bench/results/v1/pooling/nopipelining/exceptions_1703596030.9513938.csv
@@ -0,0 +1 @@
+Count,Message,Traceback,Nodes
diff --git a/bench/results/v1/pooling/nopipelining/failures_1703596027.5191846.csv b/bench/results/v1/pooling/nopipelining/failures_1703596027.5191846.csv
new file mode 100644
index 0000000..f87ff75
--- /dev/null
+++ b/bench/results/v1/pooling/nopipelining/failures_1703596027.5191846.csv
@@ -0,0 +1 @@
+Method,Name,Error,Occurrences
diff --git a/bench/results/v1/pooling/nopipelining/report_1703595860.4832726.html b/bench/results/v1/pooling/nopipelining/report_1703595860.4832726.html
new file mode 100644
index 0000000..766ef81
--- /dev/null
+++ b/bench/results/v1/pooling/nopipelining/report_1703595860.4832726.html
@@ -0,0 +1,592 @@
+
+
+
+ Test Report for locustfile.py
+
+
+
+
+
+
Locust Test Report
+
+
+
+
During: 2023-12-26 13:03:21 - 2023-12-26 13:03:59
+
Target Host: http://localhost:9001
+
Script: locustfile.py
+
+
+
+
Request Statistics
+
+
+
+ Method |
+ Name |
+ # Requests |
+ # Fails |
+ Average (ms) |
+ Min (ms) |
+ Max (ms) |
+ Average size (bytes) |
+ RPS |
+ Failures/s |
+
+
+
+
+
+ POST |
+ http://localhost:9001/write |
+ 148740 |
+ 0 |
+ 7 |
+ 0 |
+ 485 |
+ 98 |
+ 3904.8 |
+ 0.0 |
+
+
+
+ |
+ Aggregated |
+ 148740 |
+ 0 |
+ 7 |
+ 0 |
+ 485 |
+ 98 |
+ 3904.8 |
+ 0.0 |
+
+
+
+
+
+
+
+
Response Time Statistics
+
+
+
+ Method |
+ Name |
+ 50%ile (ms) |
+ 60%ile (ms) |
+ 70%ile (ms) |
+ 80%ile (ms) |
+ 90%ile (ms) |
+ 95%ile (ms) |
+ 99%ile (ms) |
+ 100%ile (ms) |
+
+
+
+
+
+ POST |
+ http://localhost:9001/write |
+ 6 |
+ 7 |
+ 9 |
+ 10 |
+ 12 |
+ 15 |
+ 25 |
+ 480 |
+
+
+
+ |
+ Aggregated |
+ 6 |
+ 7 |
+ 9 |
+ 10 |
+ 12 |
+ 15 |
+ 25 |
+ 480 |
+
+
+
+
+
+
+
+
+
+
+
+
+
Charts
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bench/results/v1/pooling/nopipelining/requests_1703596023.1375458.csv b/bench/results/v1/pooling/nopipelining/requests_1703596023.1375458.csv
new file mode 100644
index 0000000..91df077
--- /dev/null
+++ b/bench/results/v1/pooling/nopipelining/requests_1703596023.1375458.csv
@@ -0,0 +1,3 @@
+Type,Name,Request Count,Failure Count,Median Response Time,Average Response Time,Min Response Time,Max Response Time,Average Content Size,Requests/s,Failures/s,50%,66%,75%,80%,90%,95%,98%,99%,99.9%,99.99%,100%
+POST,http://localhost:9001/write,148740,0,6,7.030960064542154,0,485,98.25319349199947,3904.7975720558998,0.0,6,8,9,10,12,15,20,25,170,380,480
+,Aggregated,148740,0,6,7.030960064542154,0,485,98.25319349199947,3904.7975720558998,0.0,6,8,9,10,12,15,20,25,170,380,480
diff --git a/bench/results/v1/pooling/pipelining/exceptions_1703596225.1236575.csv b/bench/results/v1/pooling/pipelining/exceptions_1703596225.1236575.csv
new file mode 100644
index 0000000..5e0e870
--- /dev/null
+++ b/bench/results/v1/pooling/pipelining/exceptions_1703596225.1236575.csv
@@ -0,0 +1 @@
+Count,Message,Traceback,Nodes
diff --git a/bench/results/v1/pooling/pipelining/failures_1703596222.6026022.csv b/bench/results/v1/pooling/pipelining/failures_1703596222.6026022.csv
new file mode 100644
index 0000000..f87ff75
--- /dev/null
+++ b/bench/results/v1/pooling/pipelining/failures_1703596222.6026022.csv
@@ -0,0 +1 @@
+Method,Name,Error,Occurrences
diff --git a/bench/results/v1/pooling/pipelining/report_1703596228.6807888.html b/bench/results/v1/pooling/pipelining/report_1703596228.6807888.html
new file mode 100644
index 0000000..143edec
--- /dev/null
+++ b/bench/results/v1/pooling/pipelining/report_1703596228.6807888.html
@@ -0,0 +1,592 @@
+
+
+
+ Test Report for locustfile.py
+
+
+
+
+
+
Locust Test Report
+
+
+
+
During: 2023-12-26 13:09:24 - 2023-12-26 13:10:06
+
Target Host: http://localhost:9001
+
Script: locustfile.py
+
+
+
+
Request Statistics
+
+
+
+ Method |
+ Name |
+ # Requests |
+ # Fails |
+ Average (ms) |
+ Min (ms) |
+ Max (ms) |
+ Average size (bytes) |
+ RPS |
+ Failures/s |
+
+
+
+
+
+ POST |
+ http://localhost:9001/pipeline/write |
+ 673 |
+ 0 |
+ 625 |
+ 448 |
+ 734 |
+ 99835 |
+ 15.8 |
+ 0.0 |
+
+
+
+ |
+ Aggregated |
+ 673 |
+ 0 |
+ 625 |
+ 448 |
+ 734 |
+ 99835 |
+ 15.8 |
+ 0.0 |
+
+
+
+
+
+
+
+
Response Time Statistics
+
+
+
+ Method |
+ Name |
+ 50%ile (ms) |
+ 60%ile (ms) |
+ 70%ile (ms) |
+ 80%ile (ms) |
+ 90%ile (ms) |
+ 95%ile (ms) |
+ 99%ile (ms) |
+ 100%ile (ms) |
+
+
+
+
+
+ POST |
+ http://localhost:9001/pipeline/write |
+ 620 |
+ 630 |
+ 640 |
+ 650 |
+ 680 |
+ 700 |
+ 720 |
+ 730 |
+
+
+
+ |
+ Aggregated |
+ 620 |
+ 630 |
+ 640 |
+ 650 |
+ 680 |
+ 700 |
+ 720 |
+ 730 |
+
+
+
+
+
+
+
+
+
+
+
+
+
Charts
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bench/results/v1/pooling/pipelining/requests_1703596209.6659396.csv b/bench/results/v1/pooling/pipelining/requests_1703596209.6659396.csv
new file mode 100644
index 0000000..49806a4
--- /dev/null
+++ b/bench/results/v1/pooling/pipelining/requests_1703596209.6659396.csv
@@ -0,0 +1,3 @@
+Type,Name,Request Count,Failure Count,Median Response Time,Average Response Time,Min Response Time,Max Response Time,Average Content Size,Requests/s,Failures/s,50%,66%,75%,80%,90%,95%,98%,99%,99.9%,99.99%,100%
+POST,http://localhost:9001/pipeline/write,673,0,620,625.5542347696879,448,734,99835.94056463595,15.80574909851346,0.0,620,640,650,650,680,700,720,720,730,730,730
+,Aggregated,673,0,620,625.5542347696879,448,734,99835.94056463595,15.80574909851346,0.0,620,640,650,650,680,700,720,720,730,730,730
diff --git a/launch.sh b/launch.sh
new file mode 100755
index 0000000..b1ad14a
--- /dev/null
+++ b/launch.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+nohup ./target/release/main --id 1 --http-addr 127.0.0.1:9001 --introducer-addr 127.0.0.1:9001 --introducer-id 1 --cluster-size 3 &
+sleep 1
+nohup ./target/release/main --id 2 --http-addr 127.0.0.1:9002 --introducer-addr 127.0.0.1:9001 --introducer-id 1 --cluster-size 3 &
+sleep 1
+nohup ./target/release/main --id 3 --http-addr 127.0.0.1:9003 --introducer-addr 127.0.0.1:9001 --introducer-id 1 --cluster-size 3 &
+
+read -p "Continue? (Y/N): " confirm && killall main