https://github.com/ulbora/c2sd
C2SD (Controller to Server Distributed Pattern.) A design pattern for a distributed server systems that can not be taken down.
https://github.com/ulbora/c2sd
censorship-resistance design-patterns distributed-computing distributed-systems microblog p2p-network rust rust-lang rust-language
Last synced: over 1 year ago
JSON representation
C2SD (Controller to Server Distributed Pattern.) A design pattern for a distributed server systems that can not be taken down.
- Host: GitHub
- URL: https://github.com/ulbora/c2sd
- Owner: Ulbora
- Created: 2021-03-01T23:37:16.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-03-02T22:33:51.000Z (over 5 years ago)
- Last Synced: 2025-01-26T13:22:35.522Z (over 1 year ago)
- Topics: censorship-resistance, design-patterns, distributed-computing, distributed-systems, microblog, p2p-network, rust, rust-lang, rust-language
- Language: Rust
- Homepage:
- Size: 5.22 MB
- Stars: 1
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# C2SD (Controller to Server Distributed Pattern)
This pattern is for any system that needs to stay up and never be completely down.
It is a good match for Micro Blogs, Web Sites, Video Sites or even banks.
### How it works
The system consist of four components, OAuth2 server, Controller, Server and distributed database like CockroachDB.
These four components can be replicated across multiple platforms:
1. Private data centers
2. GCP
3. AWS
4. Digital Ocean
5. Others
There can be as many of each component as you need and in as many places as you need.
The system can run on Docker but Kubernetes is not a requirement. The component can be written in any language and run on any server.
### Components
1. OAuth2 Server: A security server and open source GoAuth2 is a good choice.
2. Controller: A system controller that dispatches traffic to different servers.
3. Server: Can be REST servers, data processing servers, video servers or others.
4. Database: A distributed database that should run in different data centers.
### Diagram
