### Writing a book titled "Distributed Computing From First Principles"
Following the availability of high-quality free textbooks such as *[A Graduate Course in Applied Cryptography](https://crypto.stanford.edu/~dabo/cryptobook/BonehShoup_0_4.pdf)*, *[Beej C](https://beej.us/guide/bgc/)*, *[Competitive Programming](https://cses.fi/book/book.pdf)*, *[Stanford CS Education Library](http://cslibrary.stanford.edu/)*, and *[The Little Book of Semaphores](https://greenteapress.com/semaphores/LittleBookOfSemaphores.pdf)* which have provided significant value to my career, I hereby pay it forward by providing technical knowledge without the paywall barrier.
I am glad to announce my new initiative to write a free textbook titled "Distributed Computing from First Principles", building upon recent successes from my [blogging activities](https://kenluck2001.github.io/blogs/1). We know that "great stories take time to write" and as such, I am providing a [blog post](https://kenluck2001.github.io/blog_post/distributed_computing_from_first_principles.html) with the same title to keep readers engaged while the process of book writing gathers steam. The primary audience is practitioners, physicists, hackers, hobbyists, and Software Engineers. We will follow a pedagogical approach to make the work appealing to engineers of varying mathematical abilities. For background information. See the following:
+ **Author's bio:** https://kenluck2001.github.io/
+ **Blog post:** https://kenluck2001.github.io/blog_post/distributed_computing_from_first_principles.html
**Note:** This work is based on non-proprietary content that is unrelated to my employer. My time commitments are on weekends and off-work hours. Writing a book would help me perform foundational research needed to solidify my knowledge of distributed systems. For the record, I am writing the book that I wished I had when I started this research.
This work shall be royalty-free. More importantly, this is a charitable endeavor. As the saying goes, "give a man a fish, and feed him for a day, but teach that man how to fish and feed him for a lifetime". However, feel free to make a [free-will donation](https://checkout.square.site/pay/a5a1bb5a14e941baae84556f133744cd), even though I intend to stick to my delivery timelines, nevertheless. This is my diversity and inclusion initiative, which focuses on widely disseminating world-class knowledge with the hope that diverse people would benefit, especially those of underrepresented minorities.
PDF available link ¦ date updated: ¦ public use: no | inception date:
Another announcement will follow after the final version is ready, and that version will be available in [arXiv](https://arxiv.org/) in perpetuity.
All implementations would strictly use [OpenMPI](https://en.wikipedia.org/wiki/Open_MPI) in [C](https://en.wikipedia.org/wiki/ANSI_C). Message passing is the foundation of our implementations.
#### How can the impact of this endeavor be evaluated?
We anticipate lots of the readers armed with this new knowledge can dive into popular open-source projects like [Apache Spark](https://en.wikipedia.org/wiki/Apache_Spark), [Apache ZooKeeper](https://en.wikipedia.org/wiki/Apache_ZooKeeper), and [Fluid_Framework](https://en.wikipedia.org/wiki/Fluid_Framework) and fork to suit their contrived (non-generic) needs. Although these goals seem ambitious, our content will give the determined reader the skills to achieve them.
#### What is your scope of work with timelines?
+ Decide on a table of contents.
+ Draft available for public perusal.
+ Fine-tuning and reorganization of contents.
+ Reviewing by my friends.
+ Updated acknowledgement.
#### Table of contents
+ Topics covered in my [blog](https://kenluck2001.github.io/blog_post/distributed_computing_from_first_principles.html).
+ Other possible topics may include the following, with as many new implementations as possible
- Software transactional model
+ cache coherence, transactional cache (2-phase commit, 3-phase commit)
- Byzantine protocol (PBT)
- Gossip algorithm
- Anti-entropy techniques
+ CRDT
+ Ancillary structures like Merkle trees
+ Error correction code (turbo codes, Erasure coding)
- Election algorithm
- Routing algorithm
- Snapshot algorithm
- Stabilization algorithm
- Peer-to-peer connectivity (chord, CAN, Pastry, Tapestry, Freenet, kaZaA)
- Practical formal verification of distributed applications
Feel free to reach out to me on multiple channels.
+ To suggest improvements to my work.
+ Propose topics of relevance.
+ Bring relevant research papers to my notice.
Please follow me on [Twitter](https://twitter.com/kenluck2001) and [LinkedIn](https://www.linkedin.com/in/kenluck2001/) as I will announce new drafts and improvements to this endeavor.
[LaTeX](https://en.wikipedia.org/wiki/LaTeX) used for typesetting. Figures and charts made using the [Dia](https://wiki.gnome.org/Apps/Dia/).
### Risk
+ Our timeline is tentative. Estimation can be an uncharted territory where the future may be hard to predict.
+ There is zero chance of [DMCA](https://en.wikipedia.org/wiki/Digital_Millennium_Copyright_Act) requests, as it is an original work. Derived works will have a proper attribution.
+ This work is apolitical and focuses on widely sharing original educational content, and as such, it is unlikely that any reader would send cancellation requests to my employer.
### Expected outcomes
At the end of this endeavor. We will have the following in excellent shape:
+ A final PDF version of the textbook.
+ GitHub repo with polished source code.
+ A blog post describing my writing experience.
### Primary References
+ Distributed Computing: Fundamentals, Simulations, and Advanced Topics, 2nd, Hagit Attiya, Jennifer Welch.
+ Introduction to Distributed Algorithms by Gerard Tel, Cambridge University Press.
+ Reliable and Secure Distributed Programming by Christian Cachin, Rachid Guerraoui, Luıs Rodrigues, 2nd edition, Springer.
+ The Art of Multiprocessor Programming by Maurice Herlihy and Nir Shavit, Morgan Kaufmann publishers.
+ An introduction to parallel programming by Peter Pacheco, Morgan Kaufmann publishers.
+ [Specifying Systems](https://lamport.azurewebsites.net/tla/book.html) by Leslie Lamport.
All works will be covered by a liberal [MIT license](https://kenluck2001.github.io/static/license.txt).
4/14
Please feel free to donate to support my work by clicking