Skip to content

Commit

Permalink
Add 0.5.0 blog entry
Browse files Browse the repository at this point in the history
  • Loading branch information
byronwasti committed Apr 18, 2024
1 parent 8643977 commit ec21da0
Showing 1 changed file with 42 additions and 1 deletion.
43 changes: 42 additions & 1 deletion docs/content/blog/balter-0.5.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,45 @@ date = "2024-04-12"

# Balter v0.5.0

The release of Balter v0.5.0 comes with a significant number of changes.
The release of Balter v0.5.0 comes with major core refactors and a major feature which rounds out the basic functionality for single-server operation.

# Latency Controller Added

You can now limit a Scenario based on latency measurements. Currently this takes both a latency value as well as a quantile (eg. p90):

```rust
foo_scenario()
.latency(Duration::from_millis(20), 0.95) // a p95 latency of 20ms
.await;
```

# Duration is No Longer Required

A `.duration()` call was previously required for a Scenario. Now it is not needed, and instead will default to running indefinitely.

```rust
// Runs indefinitely
foo_scenario()
.tps(10_000)
.await;
```

# Scenario Overhaul

The Scenario running logic was completely overhauled and simplified. This was done for a number of reasons, but the biggest benefit is a far more intuitive and powerful API. Scenarios can now takes as many constraints as you want, rather than just one:
```rust
// Limit with all of:
// - Max TPS of 10,000
// - Max p99 latency of 20ms
// - Max error rate of 3%
foo_scenario()
.tps(10_000)
.error_rate(0.03)
.latency(Duration::from_millis(20), 0.99)
.duration(Duration::from_secs(360))
.await
```

# A Website

Balter now has a website! This will make it far easier to have long-form documentation and keep it updated more rapidly.

0 comments on commit ec21da0

Please sign in to comment.