Software Alternatives & Reviews

System Design: WhatsApp

Redis NATS memcached Apache Kafka Firebase Cloud Messaging Apache Cassandra Amazon S3 Amazon CloudFront
  1. 1
    Redis is an open source in-memory data structure project implementing a distributed, in-memory key-value database with optional durability.
    Pricing:
    • Open Source
    This will give us the last time the user was active. This functionality will be handled by the presence service combined with Redis or Memcached as our cache.

    #Key-Value Database #NoSQL Databases #Databases 183 social mentions

  2. 2
    NATS.io is an open source messaging system for cloud native applications, IoT messaging, Edge, and microservices architectures.
    Pricing:
    • Open Source
    Exactly once delivery and message ordering is challenging in a distributed system, we can use a dedicated message broker such as Apache Kafka or NATS to make our notification system more robust.

    #Developer Tools #Queueing, Messaging And Background Processing #App Development 63 social mentions

  3. High-performance, distributed memory object caching system
    Pricing:
    • Open Source
    This will give us the last time the user was active. This functionality will be handled by the presence service combined with Redis or Memcached as our cache.

    #Key-Value Database #Databases #NoSQL Databases 28 social mentions

  4. Apache Kafka is an open-source message broker project developed by the Apache Software Foundation written in Scala.
    Pricing:
    • Open Source
    Exactly once delivery and message ordering is challenging in a distributed system, we can use a dedicated message broker such as Apache Kafka or NATS to make our notification system more robust.

    #Stream Processing #Data Integration #ETL 120 social mentions

  5. Firebase Cloud Messaging (FCM) is a cross-platform messaging solution that lets you reliably send messages at no cost.
    The notification service will then consume the event from the message queue and forward the request to Firebase Cloud Messaging (FCM) or Apple Push Notification Service (APNS) based on the client's device platform (Android, iOS, web, etc). We can also add support for email and SMS.

    #Data Integration #Stream Processing #Web Push Notifications 37 social mentions

  6. The Apache Cassandra database is the right choice when you need scalability and high availability without compromising performance.
    We will split the data between different services each having ownership over a particular table. Then we can use a relational database such as PostgreSQL or a distributed NoSQL database such as Apache Cassandra for our use case.

    #Databases #NoSQL Databases #Relational Databases 40 social mentions

  7. Amazon S3 is an object storage where users can store data from their business on a safe, cloud-based platform. Amazon S3 operates in 54 availability zones within 18 graphic regions and 1 local region.
    We can use object stores like Amazon S3, Azure Blob Storage, or Google Cloud Storage for this use case.

    #Cloud Hosting #Object Storage #Cloud Storage 170 social mentions

  8. Amazon CloudFront is a content delivery web service.
    Content Delivery Network (CDN) increases content availability and redundancy while reducing bandwidth costs. Generally, static files such as images, and videos are served from CDN. We can use services like Amazon CloudFront or Cloudflare CDN for this use case.

    #CDN #Cloud Computing #Content Distribution 67 social mentions

Discuss: System Design: WhatsApp

Log in or Post with