|
| 1 | +## v0.9.5 |
| 2 | + |
| 3 | +Summary: |
| 4 | + |
| 5 | +- Added: |
| 6 | + - [e4fed706](https://github.com/datafuselabs/openraft/commit/e4fed7066ce3f941717285a15de5894c505cb5b1) Add `Raft::is_initialized()`. |
| 7 | + - [3b18517a](https://github.com/datafuselabs/openraft/commit/3b18517a9a063defc33750faf3fd61d7ebf29c88) Add `RaftTypeConfig::Responder` to customize returning client write response. |
| 8 | + - [c508a354](https://github.com/datafuselabs/openraft/commit/c508a3540331b5ea08d75b09dfc7a90a87c93b89) `Raft::client_write_ff()` ff for fire-and-forget. |
| 9 | + |
| 10 | +Detail: |
| 11 | + |
| 12 | +### Added: |
| 13 | + |
| 14 | +- Added: [e4fed706](https://github.com/datafuselabs/openraft/commit/e4fed7066ce3f941717285a15de5894c505cb5b1) Add `Raft::is_initialized()`; by 张炎泼; 2024-04-08 |
| 15 | + |
| 16 | + `Raft::is_initialized()` returns `true` if this raft node is already |
| 17 | + initialized with `Raft::initialize()`, by checking if log is empty and |
| 18 | + `vote` is not written. |
| 19 | + |
| 20 | +- Added: [3b18517a](https://github.com/datafuselabs/openraft/commit/3b18517a9a063defc33750faf3fd61d7ebf29c88) Add `RaftTypeConfig::Responder` to customize returning client write response; by 张炎泼; 2024-04-03 |
| 21 | + |
| 22 | + This commit introduces the `Responder` trait that defines the mechanism |
| 23 | + by which `RaftCore` sends responses back to the client after processing |
| 24 | + write requests. Applications can now customize response handling by |
| 25 | + implementing their own version of the `RaftTypeConfig::Responder` trait. |
| 26 | + |
| 27 | + The `Responder::from_app_data(RaftTypeConfig::D)` method is invoked to |
| 28 | + create a new `Responder` instance when a client write request is |
| 29 | + received. |
| 30 | + Once the write operation is completed within `RaftCore`, |
| 31 | + `Responder::send(WriteResult)` is called to dispatch the result |
| 32 | + back to the client. |
| 33 | + |
| 34 | + By default, `RaftTypeConfig::Responder` retains the existing |
| 35 | + functionality using a oneshot channel, ensuring backward compatibility. |
| 36 | + |
| 37 | + This change is non-breaking, requiring no modifications to existing |
| 38 | + applications. |
| 39 | + |
| 40 | + - Fix: #1068 |
| 41 | + |
| 42 | +- Added: [c508a354](https://github.com/datafuselabs/openraft/commit/c508a3540331b5ea08d75b09dfc7a90a87c93b89) `Raft::client_write_ff()` ff for fire-and-forget; by 张炎泼; 2024-04-08 |
| 43 | + |
| 44 | + `Raft<C>::client_write_ff() -> C::Responder::Receiver` submit a client |
| 45 | + request to Raft to update the state machine, returns an application |
| 46 | + defined response receiver `Responder::Receiver` to receive the response. |
| 47 | + |
| 48 | + `_ff` means fire and forget. |
| 49 | + |
| 50 | + It is same as [`Raft::client_write`] but does not wait for the response. |
| 51 | + When using this method, it is the application's responsibility for |
| 52 | + defining mechanism building and consuming the `Responder::Receiver`. |
| 53 | + |
| 54 | + - Part of #1068 |
| 55 | + |
1 | 56 | ## v0.9.4
|
2 | 57 |
|
3 | 58 | Summary:
|
|
0 commit comments