Skip to content

Commit

Permalink
moved the bit about timeboxing to a better spot
Browse files Browse the repository at this point in the history
  • Loading branch information
lauranooooo committed Jun 6, 2024
1 parent 36dee81 commit 98d8b89
Showing 1 changed file with 3 additions and 5 deletions.
8 changes: 3 additions & 5 deletions projects/raft-otel/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,9 +97,11 @@ Read these blog posts carefully.

You can either

1. try to write your own RAFT implementation, building up the functionality in the stages described by Bendersky (this will take a lot of time), or
1. try to write your own RAFT implementation, building up the functionality in the stages described by Bendersky, or
2. use [our version of Bendersky's code](https://github.com/CodeYourFuture/immersive-go-course/pull/214) - this version of the code is modified so you can run it under docker-compose, and it uses gRPC rather than go's 'net/rpc', and has a small FSM and a K/V interface with a demo client.

**Note:** Writing your own implmementation from scratch will take a lot of time - we suggest that if you try this route you spend no more than 2 days - at the start of the third day, if your implementation is not complete, switch to the provided implementation. You can come back and complete your own implementation if you have time at the end of the sprint.

Reading code written by others is a useful skill to have, so if you opt to create your own implementation, you should still review other implementations.
Do they differ from yours in any significant respect?

Expand All @@ -120,10 +122,6 @@ The initial code doesn't do anything if you send a get/set to any server other
address (host:port) of the leader instead, as part of your gRPC reply. Your client can then
retry the operation against the leader. Alternatively, you could modify the program to proxy the request directly to the leader.

Please timebox this part of the project to no more than two days, in order to leave time for the other sections.
At the start of the third day, if your implementation is not complete, begin modifying Bendersky's. You can come back and complete your
own implementation if you have time at the end of the sprint.

##### Operations when an instance is not the leader - allow stale reads

The reason we do not serve read operations (here, `get`) from hosts that are not the RAFT leader is that they might have stale data.
Expand Down

0 comments on commit 98d8b89

Please sign in to comment.