{"action":"created","comment":{"url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/pulls/comments/234606490","pull_request_review_id":176281141,"id":234606490,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzNDYwNjQ5MA==","diff_hunk":"@@ -0,0 +1,157 @@\n+---\n+layout: post\n+authors: [jan_van_der_veken]\n+title: \"Transactions in MongoDB 4.0\"\n+image: /img/2018-11-08-mongodb-europe-2018/main-image-mdbe.png\n+tags: [Development,MongoDB,DBA,Data,Transactions,ACID,Conference]\n+category: Development\n+comments: true\n+---\n+\n+# Table of Contents\n+1. [Introduction](#introduction)\n+2. [Relational vs. document database](#Relational-vs.-document-database)\n+3. [When to use transactions?](#when-to-use-transactions)\n+4. [Technical details](#technical-details)\n+5. [Practical](#practical)\n+6. [Best Practices](#best-practices)\n+5. [Conclusion](#conclusion)\n+\n+## Introduction\n+- [How and When to Use Multi-Document Distributed Transactions, Aly Cabral](https://mongodbeurope2018.sched.com/event/FmAR/how-and-when-to-use-multi-document-distributed-transactions)\n+- [MongoDB: Building a New Transactional Model, Keith Bostic](https://mongodbeurope2018.sched.com/event/FmAW/mongodb-building-a-new-transactional-model)\n+\n+The sessions I was looking forward to the most at MongoDB Europe 2018 were the two sessions about multi-document transactions, the most talked about feature of the MongoDB 4.0 release.\n+In the morning I attended a session by Aly Cabral which was very practically oriented.\n+In the afternoon there was a more esoteric yet very interesting session by Keith Bostic who provided some insight into the inner workings of the WiredTiger storage engine and the difficulties the MongoDB team had to overcome to implement the new transaction model.\n+\n+To give some background, as a longtime Oracle DBA, I always found it odd that a database would lack what I had always considered a crucial database feature during my Oracle days.\n+So I was naturally curious to know more about MongoDB's implementation and how it would compare to a typical relational database.\n+\n+In this post we will explore how multi-document transactions are implemented in MongoDB, how the implementation is similar to a relational database system and where they differ.\n+\n+## Relational vs. document database\n+As I learned through working with MongoDB the past two years, there is less need for multi-document transactions in MongoDB, and by extension, in document databases in general.\n+For the majority of use cases single document transactions suffice.\n+This is because the data model you use with a document database is quite different from what you would use with an RDBMS.\n+\n+In a relational database system you typically normalize data in order to avoid duplication.\n+A single \"entity\" more often than not has data spanning multiple tables, so when you perform updates to a single entity you have to update multiple rows in multiple tables concurrently, which necessitates transactions.\n+\n+In a document database like MongoDB though, you typically embed all data that represents one entity within a single document, in which case updates to that entity are also limited to a single document.\n+You can see that there's less need for transactions.\n+\n+In essence, the RDBMS approach prioritizes disk space efficiency above everything else whereas the MongoDB approach prioritizes ease of development and simplicity.\n+\n+Nevertheless, there are some scenarios where you may want to use multi-document transactions even in a document database, so let's see what some of those scenarios might be...\n+\n+## When to use transactions?\n+\n+### Relationships\n+In the case that your datamodel does have relationships between separate entitites, you may want to use transactions to update both of them at the same time.\n+\n+An example of this could be a \"customer\" and a \"car\" that he owns.\n+They are distinct entities, but there is a relationship between them in the form of ownership information.\n+If you update the ownership information on the \"customer\" document, you probably need to update it on the \"car\" document (or documents) as well.\n+\n+The only way to do this with guaranteed consistency is through a multi-document transaction.\n+\n+### Event processing\n+Another use case of transactions is event processing.\n+When a certain event occurs, it may need to atomically create, update, delete several entities at the same time.\n+\n+The example that was given in Aly's presentation was the creation or invalidation of a customer's account, which would require an update to all of the customer's entities.\n+\n+### Event logging or auditing\n+Consider the case where, for logging or auditing purposes, you want to create an event trail of all changes that happen to a certain document or collection and you want to store this event trail in another collection.","path":"_posts/2018-11-06-mongodb-transactions.md","position":66,"original_position":66,"commit_id":"bf0aed8b70939b7e0776b525876ae46d8a925a36","original_commit_id":"bf0aed8b70939b7e0776b525876ae46d8a925a36","user":{"login":"jvanderveken-ordina","id":45002864,"node_id":"MDQ6VXNlcjQ1MDAyODY0","avatar_url":"https://avatars2.githubusercontent.com/u/45002864?v=4","gravatar_id":"","url":"https://api.github.com/users/jvanderveken-ordina","html_url":"https://github.com/jvanderveken-ordina","followers_url":"https://api.github.com/users/jvanderveken-ordina/followers","following_url":"https://api.github.com/users/jvanderveken-ordina/following{/other_user}","gists_url":"https://api.github.com/users/jvanderveken-ordina/gists{/gist_id}","starred_url":"https://api.github.com/users/jvanderveken-ordina/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jvanderveken-ordina/subscriptions","organizations_url":"https://api.github.com/users/jvanderveken-ordina/orgs","repos_url":"https://api.github.com/users/jvanderveken-ordina/repos","events_url":"https://api.github.com/users/jvanderveken-ordina/events{/privacy}","received_events_url":"https://api.github.com/users/jvanderveken-ordina/received_events","type":"User","site_admin":false},"body":"ok","created_at":"2018-11-19T12:52:19Z","updated_at":"2018-11-19T12:52:19Z","html_url":"https://github.com/ordina-jworks/ordina-jworks.github.io/pull/457#discussion_r234606490","pull_request_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/pulls/457","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/pulls/comments/234606490"},"html":{"href":"https://github.com/ordina-jworks/ordina-jworks.github.io/pull/457#discussion_r234606490"},"pull_request":{"href":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/pulls/457"}},"in_reply_to_id":234255376},"pull_request":{"url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/pulls/457","id":231157736,"node_id":"MDExOlB1bGxSZXF1ZXN0MjMxMTU3NzM2","html_url":"https://github.com/ordina-jworks/ordina-jworks.github.io/pull/457","diff_url":"https://github.com/ordina-jworks/ordina-jworks.github.io/pull/457.diff","patch_url":"https://github.com/ordina-jworks/ordina-jworks.github.io/pull/457.patch","issue_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/issues/457","number":457,"state":"open","locked":false,"title":"Feature/mongodb transactions","user":{"login":"ChrisDeBruyne","id":5428762,"node_id":"MDQ6VXNlcjU0Mjg3NjI=","avatar_url":"https://avatars3.githubusercontent.com/u/5428762?v=4","gravatar_id":"","url":"https://api.github.com/users/ChrisDeBruyne","html_url":"https://github.com/ChrisDeBruyne","followers_url":"https://api.github.com/users/ChrisDeBruyne/followers","following_url":"https://api.github.com/users/ChrisDeBruyne/following{/other_user}","gists_url":"https://api.github.com/users/ChrisDeBruyne/gists{/gist_id}","starred_url":"https://api.github.com/users/ChrisDeBruyne/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ChrisDeBruyne/subscriptions","organizations_url":"https://api.github.com/users/ChrisDeBruyne/orgs","repos_url":"https://api.github.com/users/ChrisDeBruyne/repos","events_url":"https://api.github.com/users/ChrisDeBruyne/events{/privacy}","received_events_url":"https://api.github.com/users/ChrisDeBruyne/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-11-15T11:18:18Z","updated_at":"2018-11-19T12:52:19Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a6233444710a33f8953160f0ec062d267ff2bf17","assignee":{"login":"ChrisDeBruyne","id":5428762,"node_id":"MDQ6VXNlcjU0Mjg3NjI=","avatar_url":"https://avatars3.githubusercontent.com/u/5428762?v=4","gravatar_id":"","url":"https://api.github.com/users/ChrisDeBruyne","html_url":"https://github.com/ChrisDeBruyne","followers_url":"https://api.github.com/users/ChrisDeBruyne/followers","following_url":"https://api.github.com/users/ChrisDeBruyne/following{/other_user}","gists_url":"https://api.github.com/users/ChrisDeBruyne/gists{/gist_id}","starred_url":"https://api.github.com/users/ChrisDeBruyne/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ChrisDeBruyne/subscriptions","organizations_url":"https://api.github.com/users/ChrisDeBruyne/orgs","repos_url":"https://api.github.com/users/ChrisDeBruyne/repos","events_url":"https://api.github.com/users/ChrisDeBruyne/events{/privacy}","received_events_url":"https://api.github.com/users/ChrisDeBruyne/received_events","type":"User","site_admin":false},"assignees":[{"login":"ChrisDeBruyne","id":5428762,"node_id":"MDQ6VXNlcjU0Mjg3NjI=","avatar_url":"https://avatars3.githubusercontent.com/u/5428762?v=4","gravatar_id":"","url":"https://api.github.com/users/ChrisDeBruyne","html_url":"https://github.com/ChrisDeBruyne","followers_url":"https://api.github.com/users/ChrisDeBruyne/followers","following_url":"https://api.github.com/users/ChrisDeBruyne/following{/other_user}","gists_url":"https://api.github.com/users/ChrisDeBruyne/gists{/gist_id}","starred_url":"https://api.github.com/users/ChrisDeBruyne/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ChrisDeBruyne/subscriptions","organizations_url":"https://api.github.com/users/ChrisDeBruyne/orgs","repos_url":"https://api.github.com/users/ChrisDeBruyne/repos","events_url":"https://api.github.com/users/ChrisDeBruyne/events{/privacy}","received_events_url":"https://api.github.com/users/ChrisDeBruyne/received_events","type":"User","site_admin":false},{"login":"Nxtra","id":36597466,"node_id":"MDQ6VXNlcjM2NTk3NDY2","avatar_url":"https://avatars3.githubusercontent.com/u/36597466?v=4","gravatar_id":"","url":"https://api.github.com/users/Nxtra","html_url":"https://github.com/Nxtra","followers_url":"https://api.github.com/users/Nxtra/followers","following_url":"https://api.github.com/users/Nxtra/following{/other_user}","gists_url":"https://api.github.com/users/Nxtra/gists{/gist_id}","starred_url":"https://api.github.com/users/Nxtra/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Nxtra/subscriptions","organizations_url":"https://api.github.com/users/Nxtra/orgs","repos_url":"https://api.github.com/users/Nxtra/repos","events_url":"https://api.github.com/users/Nxtra/events{/privacy}","received_events_url":"https://api.github.com/users/Nxtra/received_events","type":"User","site_admin":false},{"login":"jvanderveken-ordina","id":45002864,"node_id":"MDQ6VXNlcjQ1MDAyODY0","avatar_url":"https://avatars2.githubusercontent.com/u/45002864?v=4","gravatar_id":"","url":"https://api.github.com/users/jvanderveken-ordina","html_url":"https://github.com/jvanderveken-ordina","followers_url":"https://api.github.com/users/jvanderveken-ordina/followers","following_url":"https://api.github.com/users/jvanderveken-ordina/following{/other_user}","gists_url":"https://api.github.com/users/jvanderveken-ordina/gists{/gist_id}","starred_url":"https://api.github.com/users/jvanderveken-ordina/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jvanderveken-ordina/subscriptions","organizations_url":"https://api.github.com/users/jvanderveken-ordina/orgs","repos_url":"https://api.github.com/users/jvanderveken-ordina/repos","events_url":"https://api.github.com/users/jvanderveken-ordina/events{/privacy}","received_events_url":"https://api.github.com/users/jvanderveken-ordina/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/pulls/457/commits","review_comments_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/pulls/457/comments","review_comment_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/issues/457/comments","statuses_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/statuses/bf0aed8b70939b7e0776b525876ae46d8a925a36","head":{"label":"ordina-jworks:feature/mongodb-transactions","ref":"feature/mongodb-transactions","sha":"bf0aed8b70939b7e0776b525876ae46d8a925a36","user":{"login":"ordina-jworks","id":15261659,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE1MjYxNjU5","avatar_url":"https://avatars0.githubusercontent.com/u/15261659?v=4","gravatar_id":"","url":"https://api.github.com/users/ordina-jworks","html_url":"https://github.com/ordina-jworks","followers_url":"https://api.github.com/users/ordina-jworks/followers","following_url":"https://api.github.com/users/ordina-jworks/following{/other_user}","gists_url":"https://api.github.com/users/ordina-jworks/gists{/gist_id}","starred_url":"https://api.github.com/users/ordina-jworks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ordina-jworks/subscriptions","organizations_url":"https://api.github.com/users/ordina-jworks/orgs","repos_url":"https://api.github.com/users/ordina-jworks/repos","events_url":"https://api.github.com/users/ordina-jworks/events{/privacy}","received_events_url":"https://api.github.com/users/ordina-jworks/received_events","type":"Organization","site_admin":false},"repo":{"id":44804684,"node_id":"MDEwOlJlcG9zaXRvcnk0NDgwNDY4NA==","name":"ordina-jworks.github.io","full_name":"ordina-jworks/ordina-jworks.github.io","private":false,"owner":{"login":"ordina-jworks","id":15261659,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE1MjYxNjU5","avatar_url":"https://avatars0.githubusercontent.com/u/15261659?v=4","gravatar_id":"","url":"https://api.github.com/users/ordina-jworks","html_url":"https://github.com/ordina-jworks","followers_url":"https://api.github.com/users/ordina-jworks/followers","following_url":"https://api.github.com/users/ordina-jworks/following{/other_user}","gists_url":"https://api.github.com/users/ordina-jworks/gists{/gist_id}","starred_url":"https://api.github.com/users/ordina-jworks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ordina-jworks/subscriptions","organizations_url":"https://api.github.com/users/ordina-jworks/orgs","repos_url":"https://api.github.com/users/ordina-jworks/repos","events_url":"https://api.github.com/users/ordina-jworks/events{/privacy}","received_events_url":"https://api.github.com/users/ordina-jworks/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ordina-jworks/ordina-jworks.github.io","description":"Ordina JWorks Business Unit Tech Blog","fork":false,"url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io","forks_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/forks","keys_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/teams","hooks_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/hooks","issue_events_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/issues/events{/number}","events_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/events","assignees_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/assignees{/user}","branches_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/branches{/branch}","tags_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/tags","blobs_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/statuses/{sha}","languages_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/languages","stargazers_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/stargazers","contributors_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/contributors","subscribers_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/subscribers","subscription_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/subscription","commits_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/issues/comments{/number}","contents_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/contents/{+path}","compare_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/merges","archive_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/downloads","issues_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/issues{/number}","pulls_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/pulls{/number}","milestones_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/milestones{/number}","notifications_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/labels{/name}","releases_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/releases{/id}","deployments_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/deployments","created_at":"2015-10-23T09:56:09Z","updated_at":"2018-11-16T22:09:57Z","pushed_at":"2018-11-19T07:55:09Z","git_url":"git://github.com/ordina-jworks/ordina-jworks.github.io.git","ssh_url":"git@github.com:ordina-jworks/ordina-jworks.github.io.git","clone_url":"https://github.com/ordina-jworks/ordina-jworks.github.io.git","svn_url":"https://github.com/ordina-jworks/ordina-jworks.github.io","homepage":"https://ordina-jworks.github.io/","size":282847,"stargazers_count":13,"watchers_count":13,"language":"CSS","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":17,"mirror_url":null,"archived":false,"open_issues_count":15,"license":null,"forks":17,"open_issues":15,"watchers":13,"default_branch":"source"}},"base":{"label":"ordina-jworks:source","ref":"source","sha":"f6ba87f14991006a9a7b4b2af8c29d3ca8ad2356","user":{"login":"ordina-jworks","id":15261659,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE1MjYxNjU5","avatar_url":"https://avatars0.githubusercontent.com/u/15261659?v=4","gravatar_id":"","url":"https://api.github.com/users/ordina-jworks","html_url":"https://github.com/ordina-jworks","followers_url":"https://api.github.com/users/ordina-jworks/followers","following_url":"https://api.github.com/users/ordina-jworks/following{/other_user}","gists_url":"https://api.github.com/users/ordina-jworks/gists{/gist_id}","starred_url":"https://api.github.com/users/ordina-jworks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ordina-jworks/subscriptions","organizations_url":"https://api.github.com/users/ordina-jworks/orgs","repos_url":"https://api.github.com/users/ordina-jworks/repos","events_url":"https://api.github.com/users/ordina-jworks/events{/privacy}","received_events_url":"https://api.github.com/users/ordina-jworks/received_events","type":"Organization","site_admin":false},"repo":{"id":44804684,"node_id":"MDEwOlJlcG9zaXRvcnk0NDgwNDY4NA==","name":"ordina-jworks.github.io","full_name":"ordina-jworks/ordina-jworks.github.io","private":false,"owner":{"login":"ordina-jworks","id":15261659,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE1MjYxNjU5","avatar_url":"https://avatars0.githubusercontent.com/u/15261659?v=4","gravatar_id":"","url":"https://api.github.com/users/ordina-jworks","html_url":"https://github.com/ordina-jworks","followers_url":"https://api.github.com/users/ordina-jworks/followers","following_url":"https://api.github.com/users/ordina-jworks/following{/other_user}","gists_url":"https://api.github.com/users/ordina-jworks/gists{/gist_id}","starred_url":"https://api.github.com/users/ordina-jworks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ordina-jworks/subscriptions","organizations_url":"https://api.github.com/users/ordina-jworks/orgs","repos_url":"https://api.github.com/users/ordina-jworks/repos","events_url":"https://api.github.com/users/ordina-jworks/events{/privacy}","received_events_url":"https://api.github.com/users/ordina-jworks/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ordina-jworks/ordina-jworks.github.io","description":"Ordina JWorks Business Unit Tech Blog","fork":false,"url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io","forks_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/forks","keys_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/teams","hooks_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/hooks","issue_events_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/issues/events{/number}","events_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/events","assignees_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/assignees{/user}","branches_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/branches{/branch}","tags_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/tags","blobs_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/statuses/{sha}","languages_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/languages","stargazers_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/stargazers","contributors_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/contributors","subscribers_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/subscribers","subscription_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/subscription","commits_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/issues/comments{/number}","contents_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/contents/{+path}","compare_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/merges","archive_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/downloads","issues_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/issues{/number}","pulls_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/pulls{/number}","milestones_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/milestones{/number}","notifications_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/labels{/name}","releases_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/releases{/id}","deployments_url":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/deployments","created_at":"2015-10-23T09:56:09Z","updated_at":"2018-11-16T22:09:57Z","pushed_at":"2018-11-19T07:55:09Z","git_url":"git://github.com/ordina-jworks/ordina-jworks.github.io.git","ssh_url":"git@github.com:ordina-jworks/ordina-jworks.github.io.git","clone_url":"https://github.com/ordina-jworks/ordina-jworks.github.io.git","svn_url":"https://github.com/ordina-jworks/ordina-jworks.github.io","homepage":"https://ordina-jworks.github.io/","size":282847,"stargazers_count":13,"watchers_count":13,"language":"CSS","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":17,"mirror_url":null,"archived":false,"open_issues_count":15,"license":null,"forks":17,"open_issues":15,"watchers":13,"default_branch":"source"}},"_links":{"self":{"href":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/pulls/457"},"html":{"href":"https://github.com/ordina-jworks/ordina-jworks.github.io/pull/457"},"issue":{"href":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/issues/457"},"comments":{"href":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/issues/457/comments"},"review_comments":{"href":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/pulls/457/comments"},"review_comment":{"href":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/pulls/457/commits"},"statuses":{"href":"https://api.github.com/repos/ordina-jworks/ordina-jworks.github.io/statuses/bf0aed8b70939b7e0776b525876ae46d8a925a36"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"jvanderveken-ordina"}}