Designing your first multi-billion startup

The problem to solve

The solution

Breaking the problem into smaller parts

  1. Communicate with users using Telegram
  2. Define user interaction scenarios
  3. Retrieve latest repository versions from GitHub
  4. Save the latest version of a GitHub repository
  5. Save the user-defined list of GitHub repositories
  6. Retrieve the user-defined list of GitHub repositories
  7. Validate user input
  8. Schedule new version retrieval
  9. Broadcast new version to subscribed users
  • Domain module contains all the models
  • Storage module contains all the logic of saving and retrieving the data
  • Service module contains all the business logic
  • Backend module contains all the logic of starting the server
  1. Set common module settings
  2. Set service module library dependencies
  3. Define dependency on the storage module

Defining project packages

  • io.pager.subscription
  • io.pager.lookup
  • io.pager.service
  • io.pager.repository

Design your service interfaces

Summary

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store