{"id":21851952,"url":"https://github.com/ulbora/c2sd","last_synced_at":"2025-03-21T18:27:40.409Z","repository":{"id":87394417,"uuid":"343587866","full_name":"Ulbora/c2sd","owner":"Ulbora","description":"C2SD (Controller to Server Distributed Pattern.) A design pattern for a distributed server systems that can not be taken down.","archived":false,"fork":false,"pushed_at":"2021-03-02T22:33:51.000Z","size":5473,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-26T13:22:35.522Z","etag":null,"topics":["censorship-resistance","design-patterns","distributed-computing","distributed-systems","microblog","p2p-network","rust","rust-lang","rust-language"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ulbora.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-01T23:37:16.000Z","updated_at":"2023-10-25T17:23:59.000Z","dependencies_parsed_at":"2023-05-07T11:30:40.884Z","dependency_job_id":null,"html_url":"https://github.com/Ulbora/c2sd","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/Ulbora%2Fc2sd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ulbora%2Fc2sd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ulbora%2Fc2sd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ulbora%2Fc2sd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ulbora","download_url":"https://codeload.github.com/Ulbora/c2sd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244846834,"owners_count":20520206,"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":["censorship-resistance","design-patterns","distributed-computing","distributed-systems","microblog","p2p-network","rust","rust-lang","rust-language"],"created_at":"2024-11-28T01:12:54.789Z","updated_at":"2025-03-21T18:27:40.374Z","avatar_url":"https://github.com/Ulbora.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# C2SD (Controller to Server Distributed Pattern)\n\nThis pattern is for any system that needs to stay up and never be completely down.\nIt is a good match for Micro Blogs, Web Sites, Video Sites or even banks.\n\n### How it works\nThe system consist of four components, OAuth2 server, Controller, Server and distributed database like CockroachDB. \nThese four components can be replicated across multiple platforms: \n1. Private data centers\n2. GCP\n3. AWS\n4. Digital Ocean\n5. Others\n\nThere can be as many of each component as you need and in as many places as you need.\nThe system can run on Docker but Kubernetes is not a requirement. The component can be written in any language and run on any server.\n\n### Components\n1. OAuth2 Server: A security server and open source GoAuth2 is a good choice.\n2. Controller: A system controller that dispatches traffic to different servers.\n3. Server: Can be REST servers, data processing servers, video servers or others.\n4. Database: A distributed database that should run in different data centers.\n\n### Diagram\n\n![Diagram](/c2sd_pattern.png)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fulbora%2Fc2sd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fulbora%2Fc2sd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fulbora%2Fc2sd/lists"}