Liker
Why:
- This project is a proof of concept for several ideas related to distributed computing
- Total Order Broadcast (Atomic Broadcast)
- Event Sourcing
- Using Websockets to "push" real-time event data to web clients
- OAuth 2.0 authentication and authorization
How:
- Create an application where users can
- Log in using Google Single Sign On (SSO)
- Join a real-time "game" where they can compete with other users to increment a counter to a set number
- View real-time updates as other users influence the game's state
- Write to a single "event log" of append-only events
- Read from multiple replicas of the application data; to simulate real-world performance concerns
Context:
- This is based on theories outlined in the book Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
Code:
- https://github.com/codekaizen-github/liker-frontend
- https://github.com/codekaizen-github/liker-event-log
- https://github.com/codekaizen-github/liker-stream-processor-deduplicator
- https://github.com/codekaizen-github/liker-stream-processor-user-events
- https://github.com/codekaizen-github/liker-stream-processor-truth-sayer