Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building a Fully Featured Scalable Chat App - Azure CosmosDBConf 2022

Building a Fully Featured Scalable Chat App - Azure CosmosDBConf 2022

Slides for my session at Azure CosmosDBConf 2022: https://www.youtube.com/watch?v=LpzJTJvH6go

The GitHub repo: https://github.com/ably-labs/fully-featured-scalable-chat-app

Marc Duiker

April 20, 2022
Tweet

More Decks by Marc Duiker

Other Decks in Technology

Transcript

  1. @MarcDuiker

    View Slide

  2. @MarcDuiker
    Marc Duiker
    Sr Developer Advocate

    View Slide

  3. @MarcDuiker 3

    View Slide

  4. @MarcDuiker 4

    View Slide

  5. @MarcDuiker 5

    View Slide

  6. @MarcDuiker 6

    View Slide

  7. @MarcDuiker 7

    View Slide

  8. @MarcDuiker 8

    View Slide

  9. @MarcDuiker 9

    View Slide

  10. @MarcDuiker 10

    View Slide

  11. @MarcDuiker 11
    https://ffs-chat.ably.dev

    View Slide

  12. @MarcDuiker 12

    View Slide

  13. @MarcDuiker 13
    Docs Code samples

    View Slide

  14. @MarcDuiker 14

    View Slide

  15. @MarcDuiker 15

    View Slide

  16. @MarcDuiker 16

    View Slide

  17. @MarcDuiker 17

    View Slide

  18. @MarcDuiker 18

    View Slide

  19. @MarcDuiker 19
    DAO
    DAO

    View Slide

  20. @MarcDuiker 20
    Azure Static
    Web Apps
    React
    Auth Ably CosmosDB Blob Storage
    Azure Functions

    View Slide

  21. @MarcDuiker 21
    CosmosDB
    Azure Functions
    Ably
    React
    messages
    channels / users / roles

    View Slide

  22. @MarcDuiker 22

    View Slide

  23. @MarcDuiker 23
    Ably
    User 1
    User 2
    User 3
    User 4
    Publish

    View Slide

  24. @MarcDuiker 24
    Ably
    User 1
    User 2
    User 3
    User 4
    Subscribe
    Subscribe
    Subscribe

    View Slide

  25. @MarcDuiker 25
    User 1
    User 2
    User 3
    User 4
    CosmosDB
    POST

    View Slide

  26. @MarcDuiker 26
    User 1
    User 2
    User 3
    User 4
    CosmosDB
    GET
    GET
    GET

    View Slide

  27. @MarcDuiker 27
    1 + 999 = 1000 messages
    Ably
    Publisher Subscribers
    1
    999
    1000 users in a channel

    View Slide

  28. @MarcDuiker 28
    Ably
    Publishers Subscribers
    1000 + 1000 * 999 = 1 million messages
    1000
    999
    1000 users in a channel

    View Slide

  29. @MarcDuiker 29
    Ably CosmosDB
    1000 POST
    1000
    Azure Functions
    1000 GET
    1000
    Azure Functions
    1000
    1000 users in a channel

    View Slide

  30. @MarcDuiker 31

    View Slide

  31. @MarcDuiker 32
    https://cosmos.azure.com/capacitycalculator/

    View Slide

  32. @MarcDuiker 33

    View Slide

  33. @MarcDuiker 34
    https://www.npmjs.com/package/@azure/static-web-apps-cli

    View Slide

  34. @MarcDuiker 35
    https://docs.microsoft.com/en-us/azure/static-web-apps/local-development

    View Slide

  35. @MarcDuiker 36
    https://techcommunity.microsoft.com/t5/apps-on-azure-blog/introducing-
    the-azure-static-web-apps-cli/ba-p/2257581

    View Slide

  36. @MarcDuiker 37
    https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator

    View Slide

  37. @MarcDuiker 38
    https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator

    View Slide

  38. @MarcDuiker 39

    View Slide

  39. @MarcDuiker 40
    https://github.com/features/codespaces

    View Slide

  40. @MarcDuiker 41
    https://github.com/features/codespaces

    View Slide

  41. @MarcDuiker 42

    View Slide

  42. @MarcDuiker 43

    View Slide

  43. @MarcDuiker 44

    View Slide

  44. @MarcDuiker
    - Chat moderation
    - Search
    - Media previews
    - Private messaging
    - New ideas?
    https://github.com/ably-labs/fully-
    featured-scalable-chat-app

    View Slide

  45. @MarcDuiker 46
    @marcduiker
    Ably Discord:
    https://discord.gg/q89gDHZcBK

    View Slide