{"id":13470428,"url":"https://github.com/heathermiller/dist-prog-book","last_synced_at":"2025-05-15T03:07:23.619Z","repository":{"id":37611948,"uuid":"71059722","full_name":"heathermiller/dist-prog-book","owner":"heathermiller","description":null,"archived":false,"fork":false,"pushed_at":"2021-02-09T05:50:57.000Z","size":19690,"stargazers_count":3427,"open_issues_count":13,"forks_count":269,"subscribers_count":171,"default_branch":"master","last_synced_at":"2025-05-13T23:57:06.080Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/heathermiller.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-10-16T15:37:26.000Z","updated_at":"2025-05-05T15:17:52.000Z","dependencies_parsed_at":"2022-07-12T16:33:38.051Z","dependency_job_id":null,"html_url":"https://github.com/heathermiller/dist-prog-book","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heathermiller%2Fdist-prog-book","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heathermiller%2Fdist-prog-book/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heathermiller%2Fdist-prog-book/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heathermiller%2Fdist-prog-book/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/heathermiller","download_url":"https://codeload.github.com/heathermiller/dist-prog-book/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254264766,"owners_count":22041793,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T16:00:30.115Z","updated_at":"2025-05-15T03:07:18.588Z","avatar_url":"https://github.com/heathermiller.png","language":"CSS","funding_links":[],"categories":["CSS"],"sub_categories":[],"readme":"Programming Models for Distributed Computation\n==============================================\n\nSource repo for the book that I and my students in my course at Northeastern University, [CS7680 Special Topics in Computing Systems: Programming Models for Distributed Computing](http://heather.miller.am/teaching/cs7680/), are writing on the topic of programming models for distributed systems.\n\nThis is a book about the programming constructs we use to build distributed\nsystems. These range from the small, RPC, futures, actors, to the large; systems\nbuilt up of these components like MapReduce and Spark. We explore issues and\nconcerns central to distributed systems like consistency, availability, and\nfault tolerance, from the lens of the programming models and frameworks that\nthe programmer uses to build these systems.\n\n_**Please note that this is a work in progress, the book contents are in this repo, but we have not yet polished everything and published the final book online. Expected release: end of December**_\n\n_Note: the chapters can be viewed by manually going to `http://dist-prog-book.com/chapter/x/article-name.html`, e.g., http://dist-prog-book.com/chapter/2/futures.html. One we finish off the chapters that need the most work, we will \"release\" the book by putting a proper index page in place._\n\n_Note: we are currently in talks with a major publisher to publish this book as open-access textbook! Keep your fingers crossed!🤞_\n\n## Chapters\n\n1. RPC\n2. Futures \u0026 Promises\n3. Message-passing\n4. Distributed Programming Languages\n5. Languages Extended for Distribution\n6. CAP, Consistency, \u0026 CRDTs\n7. Programming Languages \u0026 Consistency\n8. Large-scale Parallel Batch Processing\n9. Large-scale Streaming\n\n## Editing this book\n\n### Workflow\n\n1. Fork/clone\n2. Edit on your local branch\n3. **Make a pull request to the `master` branch with your changes. Do not commit directly to the repository**\n4. After merge, visit the live site `http://dist-prog-book.com/chapter/x/your-article.html`\n\nNote: We have CI that builds the book for each commit. Pull requests that don't\nbuild will not be merged.\n\nNote: when PRs are merged, the site is built and redeployed automatically.\n\n### Structure\n\nChapters are located in the `chapter` folder of the root directory.\n\n## Dependencies\n\nThis site uses a Jekyll, a Ruby framework. You'll need Ruby and Bundler\ninstalled.\n\nIf you have Ruby already installed, to install Bundler, just do `sudo gem install bundler`\n\n## Building \u0026 Viewing\n\n**Please build and view your site locally before submitting a PR!**\n\ncd into the directory where you cloned this repository, then install the\nrequired gems with `bundle install`. This will automatically put the gems into\n`./vendor/bundle`.\n\nStart the server in the context of the bundle:\n\n    bundle exec jekyll serve\n\nThe generated site is available at `http://localhost:4000`\n\nNote, this will bring you to the index page. If you'd like to see your chapter,\nmake sure to navigate there explicitly, e.g.,\n`http://localhost:4000/chapter/1/rpc.html`.\n\n## Adding/editing pages\n\nArticles are in Markdown with straightforward YAML frontmatter.\n\nYou can include code, math (LaTeX syntax), figures, blockquotes, side notes,\netc. You can also use regular BibTeX to make a bibliography. To see everything\nyou can do, I've prepared an example article.\n\n- [Live example article](http://dist-prog-book.com/example.html)\n- [Corresponding example page markdown](https://raw.githubusercontent.com/heathermiller/dist-prog-book/master/example.md)\n\nIf you would like to add BibTeX entries to the bibliography for your chapter,\ncheck the `_bibliography` directory for a `.bib` file named after your chapter.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheathermiller%2Fdist-prog-book","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fheathermiller%2Fdist-prog-book","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheathermiller%2Fdist-prog-book/lists"}