Alternatives to Dask logo

Alternatives to Dask

Apache Spark, Pandas, PySpark, Celery, and Airflow are the most popular alternatives and competitors to Dask.
100
0

What is Dask and what are its top alternatives?

Dask is a flexible parallel computing library in Python that enables scalable computing with task scheduling and parallel collections. It is designed to seamlessly scale from a single machine to a cluster, providing high performance for data-intensive computations. Dask allows users to work with large datasets that don't fit into memory, by providing parallel algorithms and lazy evaluation. However, one limitation of Dask is the learning curve associated with its advanced features and concepts.

  1. Apache Spark: Apache Spark is a fast and general-purpose cluster computing system that provides comprehensive data analytics capabilities. It offers a wide range of libraries and tools for big data processing, machine learning, and real-time analytics. Pros: Scalable, easy-to-use API, can directly read from various data sources. Cons: Steeper learning curve compared to Dask.
  2. Ray: Ray is a fast and simple framework for building and running distributed applications. It supports both task and actor-based APIs for scalable and efficient parallel computing. Pros: High performance, supports reinforcement learning workloads. Cons: Still evolving with fewer libraries and tools compared to Dask.
  3. Modin: Modin is a parallel computing library that accelerates Pandas operations by automatically distributing computation across multiple cores. It aims to provide seamless integration with existing Pandas workflows for faster data processing. Pros: Easy integration, improved performance over Pandas for certain operations. Cons: Limited support for advanced features compared to Dask.
  4. Rapids: Rapids is a suite of open-source software libraries for executing end-to-end data science and analytics pipelines entirely on GPUs. It includes cuDF for dataframes, cuML for machine learning, and cuGraph for graph analytics. Pros: High performance on GPU, comprehensive ecosystem for data science. Cons: Limited to GPU hardware, requires GPU expertise.
  5. Prefect: Prefect is a workflow orchestration tool that allows users to build, schedule, and monitor data pipelines. It provides a flexible and intuitive interface for defining complex workflows with support for dependencies and retries. Pros: Easy-to-use, advanced workflow management features. Cons: Less focus on parallel computing compared to Dask.
  6. Joblib: Joblib is a set of tools to provide lightweight pipelining in Python, with utilities for parallel computing, memory management, and caching. It is useful for speeding up CPU-bound tasks by distributing work across multiple cores. Pros: Simple to use, integrates well with existing Python code. Cons: Limited functionality compared to Dask for complex parallel computing tasks.
  7. Pachyderm: Pachyderm is a data versioning and pipeline tool that enables scalable and reproducible data processing. It uses containers to package data and code into modular units for building end-to-end data pipelines. Pros: Data versioning, support for data lineage tracking. Cons: More focused on data processing workflows than general-purpose parallel computing like Dask.
  8. TensorFlow Data Validation: TensorFlow Data Validation is a library for exploring and validating machine learning data. It provides functionalities for detecting and fixing data anomalies, as well as generating statistics and data schemas. Pros: Data validation for ML workflows, integrates well with TensorFlow ecosystem. Cons: Specific to ML data preprocessing, not a general-purpose computing tool like Dask.
  9. Prefuse: Prefuse is a visualization and interaction toolkit for data exploration. It allows users to create custom visualizations of large datasets using a variety of layouts and interactive components. Pros: Rich visualization capabilities for data analysis, supports interactive exploration. Cons: Limited to visualization tasks, not a parallel computing library like Dask.
  10. PyWren: PyWren is a simple and efficient Python library for running embarrassingly parallel workloads on cloud infrastructures. It automatically parallelizes Python functions and executes them in serverless computing environments. Pros: Scalable, easy integration with cloud platforms. Cons: Limited to embarrassingly parallel tasks, may not be suitable for complex parallel computing needs like Dask.

Top Alternatives to Dask

  • Apache Spark
    Apache Spark

    Spark is a fast and general processing engine compatible with Hadoop data. It can run in Hadoop clusters through YARN or Spark's standalone mode, and it can process data in HDFS, HBase, Cassandra, Hive, and any Hadoop InputFormat. It is designed to perform both batch processing (similar to MapReduce) and new workloads like streaming, interactive queries, and machine learning. ...

  • Pandas
    Pandas

    Flexible and powerful data analysis / manipulation library for Python, providing labeled data structures similar to R data.frame objects, statistical functions, and much more. ...

  • PySpark
    PySpark

    It is the collaboration of Apache Spark and Python. it is a Python API for Spark that lets you harness the simplicity of Python and the power of Apache Spark in order to tame Big Data. ...

  • Celery
    Celery

    Celery is an asynchronous task queue/job queue based on distributed message passing. It is focused on real-time operation, but supports scheduling as well. ...

  • Airflow
    Airflow

    Use Airflow to author workflows as directed acyclic graphs (DAGs) of tasks. The Airflow scheduler executes your tasks on an array of workers while following the specified dependencies. Rich command lines utilities makes performing complex surgeries on DAGs a snap. The rich user interface makes it easy to visualize pipelines running in production, monitor progress and troubleshoot issues when needed. ...

  • jQuery
    jQuery

    jQuery is a cross-platform JavaScript library designed to simplify the client-side scripting of HTML. ...

  • React
    React

    Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project. ...

  • AngularJS
    AngularJS

    AngularJS lets you write client-side web applications as if you had a smarter browser. It lets you use good old HTML (or HAML, Jade and friends!) as your template language and lets you extend HTML’s syntax to express your application’s components clearly and succinctly. It automatically synchronizes data from your UI (view) with your JavaScript objects (model) through 2-way data binding. ...

Dask alternatives & related posts

Apache Spark logo

Apache Spark

3K
3.5K
140
Fast and general engine for large-scale data processing
3K
3.5K
+ 1
140
PROS OF APACHE SPARK
  • 61
    Open-source
  • 48
    Fast and Flexible
  • 8
    One platform for every big data problem
  • 8
    Great for distributed SQL like applications
  • 6
    Easy to install and to use
  • 3
    Works well for most Datascience usecases
  • 2
    Interactive Query
  • 2
    Machine learning libratimery, Streaming in real
  • 2
    In memory Computation
CONS OF APACHE SPARK
  • 4
    Speed

related Apache Spark posts

Eric Colson
Chief Algorithms Officer at Stitch Fix · | 21 upvotes · 6.1M views

The algorithms and data infrastructure at Stitch Fix is housed in #AWS. Data acquisition is split between events flowing through Kafka, and periodic snapshots of PostgreSQL DBs. We store data in an Amazon S3 based data warehouse. Apache Spark on Yarn is our tool of choice for data movement and #ETL. Because our storage layer (s3) is decoupled from our processing layer, we are able to scale our compute environment very elastically. We have several semi-permanent, autoscaling Yarn clusters running to serve our data processing needs. While the bulk of our compute infrastructure is dedicated to algorithmic processing, we also implemented Presto for adhoc queries and dashboards.

Beyond data movement and ETL, most #ML centric jobs (e.g. model training and execution) run in a similarly elastic environment as containers running Python and R code on Amazon EC2 Container Service clusters. The execution of batch jobs on top of ECS is managed by Flotilla, a service we built in house and open sourced (see https://github.com/stitchfix/flotilla-os).

At Stitch Fix, algorithmic integrations are pervasive across the business. We have dozens of data products actively integrated systems. That requires serving layer that is robust, agile, flexible, and allows for self-service. Models produced on Flotilla are packaged for deployment in production using Khan, another framework we've developed internally. Khan provides our data scientists the ability to quickly productionize those models they've developed with open source frameworks in Python 3 (e.g. PyTorch, sklearn), by automatically packaging them as Docker containers and deploying to Amazon ECS. This provides our data scientist a one-click method of getting from their algorithms to production. We then integrate those deployments into a service mesh, which allows us to A/B test various implementations in our product.

For more info:

#DataScience #DataStack #Data

See more
Patrick Sun
Software Engineer at Stitch Fix · | 10 upvotes · 58.9K views

As a frontend engineer on the Algorithms & Analytics team at Stitch Fix, I work with data scientists to develop applications and visualizations to help our internal business partners make data-driven decisions. I envisioned a platform that would assist data scientists in the data exploration process, allowing them to visually explore and rapidly iterate through their assumptions, then share their insights with others. This would align with our team's philosophy of having engineers "deploy platforms, services, abstractions, and frameworks that allow the data scientists to conceive of, develop, and deploy their ideas with autonomy", and solve the pain of data exploration.

The final product, code-named Dora, is built with React, Redux.js and Victory, backed by Elasticsearch to enable fast and iterative data exploration, and uses Apache Spark to move data from our Amazon S3 data warehouse into the Elasticsearch cluster.

See more
Pandas logo

Pandas

1.7K
1.3K
23
High-performance, easy-to-use data structures and data analysis tools for the Python programming language
1.7K
1.3K
+ 1
23
PROS OF PANDAS
  • 21
    Easy data frame management
  • 2
    Extensive file format compatibility
CONS OF PANDAS
    Be the first to leave a con

    related Pandas posts

    Server side

    We decided to use Python for our backend because it is one of the industry standard languages for data analysis and machine learning. It also has a lot of support due to its large user base.

    • Web Server: We chose Flask because we want to keep our machine learning / data analysis and the web server in the same language. Flask is easy to use and we all have experience with it. Postman will be used for creating and testing APIs due to its convenience.

    • Machine Learning: We decided to go with PyTorch for machine learning since it is one of the most popular libraries. It is also known to have an easier learning curve than other popular libraries such as Tensorflow. This is important because our team lacks ML experience and learning the tool as fast as possible would increase productivity.

    • Data Analysis: Some common Python libraries will be used to analyze our data. These include NumPy, Pandas , and matplotlib. These tools combined will help us learn the properties and characteristics of our data. Jupyter notebook will be used to help organize the data analysis process, and improve the code readability.

    Client side

    • UI: We decided to use React for the UI because it helps organize the data and variables of the application into components, making it very convenient to maintain our dashboard. Since React is one of the most popular front end frameworks right now, there will be a lot of support for it as well as a lot of potential new hires that are familiar with the framework. CSS 3 and HTML5 will be used for the basic styling and structure of the web app, as they are the most widely used front end languages.

    • State Management: We decided to use Redux to manage the state of the application since it works naturally to React. Our team also already has experience working with Redux which gave it a slight edge over the other state management libraries.

    • Data Visualization: We decided to use the React-based library Victory to visualize the data. They have very user friendly documentation on their official website which we find easy to learn from.

    Cache

    • Caching: We decided between Redis and memcached because they are two of the most popular open-source cache engines. We ultimately decided to use Redis to improve our web app performance mainly due to the extra functionalities it provides such as fine-tuning cache contents and durability.

    Database

    • Database: We decided to use a NoSQL database over a relational database because of its flexibility from not having a predefined schema. The user behavior analytics has to be flexible since the data we plan to store may change frequently. We decided on MongoDB because it is lightweight and we can easily host the database with MongoDB Atlas . Everyone on our team also has experience working with MongoDB.

    Infrastructure

    • Deployment: We decided to use Heroku over AWS, Azure, Google Cloud because it is free. Although there are advantages to the other cloud services, Heroku makes the most sense to our team because our primary goal is to build an MVP.

    Other Tools

    • Communication Slack will be used as the primary source of communication. It provides all the features needed for basic discussions. In terms of more interactive meetings, Zoom will be used for its video calls and screen sharing capabilities.

    • Source Control The project will be stored on GitHub and all code changes will be done though pull requests. This will help us keep the codebase clean and make it easy to revert changes when we need to.

    See more

    Should I continue learning Django or take this Spring opportunity? I have been coding in python for about 2 years. I am currently learning Django and I am enjoying it. I also have some knowledge of data science libraries (Pandas, NumPy, scikit-learn, PyTorch). I am currently enhancing my web development and software engineering skills and may shift later into data science since I came from a medical background. The issue is that I am offered now a very trustworthy 9 months program teaching Java/Spring. The graduates of this program work directly in well know tech companies. Although I have been planning to continue with my Python, the other opportunity makes me hesitant since it will put me to work in a specific roadmap with deadlines and mentors. I also found on glassdoor that Spring jobs are way more than Django. Should I apply for this program or continue my journey?

    See more
    PySpark logo

    PySpark

    265
    289
    0
    The Python API for Spark
    265
    289
    + 1
    0
    PROS OF PYSPARK
      Be the first to leave a pro
      CONS OF PYSPARK
        Be the first to leave a con

        related PySpark posts

        Celery logo

        Celery

        1.6K
        1.6K
        280
        Distributed task queue
        1.6K
        1.6K
        + 1
        280
        PROS OF CELERY
        • 99
          Task queue
        • 63
          Python integration
        • 40
          Django integration
        • 30
          Scheduled Task
        • 19
          Publish/subsribe
        • 8
          Various backend broker
        • 6
          Easy to use
        • 5
          Great community
        • 5
          Workflow
        • 4
          Free
        • 1
          Dynamic
        CONS OF CELERY
        • 4
          Sometimes loses tasks
        • 1
          Depends on broker

        related Celery posts

        James Cunningham
        Operations Engineer at Sentry · | 21 upvotes · 361.6K views

        Sentry started as (and remains) an open-source project, growing out of an error logging tool built in 2008. That original build nine years ago was Django and Celery (Python’s asynchronous task codebase), with PostgreSQL as the database and Redis as the power behind Celery.

        We displayed a truly shrewd notion of branding even then, giving the project a catchy name that companies the world over remain jealous of to this day: django-db-log. For the longest time, Sentry’s subtitle on GitHub was “A simple Django app, built with love.” A slightly more accurate description probably would have included Starcraft and Soylent alongside love; regardless, this captured what Sentry was all about.

        #MessageQueue #InMemoryDatabases

        See more
        James Cunningham
        Operations Engineer at Sentry · | 18 upvotes · 1.8M views
        Shared insights
        on
        CeleryCeleryRabbitMQRabbitMQ
        at

        As Sentry runs throughout the day, there are about 50 different offline tasks that we execute—anything from “process this event, pretty please” to “send all of these cool people some emails.” There are some that we execute once a day and some that execute thousands per second.

        Managing this variety requires a reliably high-throughput message-passing technology. We use Celery's RabbitMQ implementation, and we stumbled upon a great feature called Federation that allows us to partition our task queue across any number of RabbitMQ servers and gives us the confidence that, if any single server gets backlogged, others will pitch in and distribute some of the backlogged tasks to their consumers.

        #MessageQueue

        See more
        Airflow logo

        Airflow

        1.7K
        2.7K
        128
        A platform to programmaticaly author, schedule and monitor data pipelines, by Airbnb
        1.7K
        2.7K
        + 1
        128
        PROS OF AIRFLOW
        • 53
          Features
        • 14
          Task Dependency Management
        • 12
          Beautiful UI
        • 12
          Cluster of workers
        • 10
          Extensibility
        • 6
          Open source
        • 5
          Complex workflows
        • 5
          Python
        • 3
          Good api
        • 3
          Apache project
        • 3
          Custom operators
        • 2
          Dashboard
        CONS OF AIRFLOW
        • 2
          Observability is not great when the DAGs exceed 250
        • 2
          Running it on kubernetes cluster relatively complex
        • 2
          Open source - provides minimum or no support
        • 1
          Logical separation of DAGs is not straight forward

        related Airflow posts

        Data science and engineering teams at Lyft maintain several big data pipelines that serve as the foundation for various types of analysis throughout the business.

        Apache Airflow sits at the center of this big data infrastructure, allowing users to “programmatically author, schedule, and monitor data pipelines.” Airflow is an open source tool, and “Lyft is the very first Airflow adopter in production since the project was open sourced around three years ago.”

        There are several key components of the architecture. A web UI allows users to view the status of their queries, along with an audit trail of any modifications the query. A metadata database stores things like job status and task instance status. A multi-process scheduler handles job requests, and triggers the executor to execute those tasks.

        Airflow supports several executors, though Lyft uses CeleryExecutor to scale task execution in production. Airflow is deployed to three Amazon Auto Scaling Groups, with each associated with a celery queue.

        Audit logs supplied to the web UI are powered by the existing Airflow audit logs as well as Flask signal.

        Datadog, Statsd, Grafana, and PagerDuty are all used to monitor the Airflow system.

        See more

        We are a young start-up with 2 developers and a team in India looking to choose our next ETL tool. We have a few processes in Azure Data Factory but are looking to switch to a better platform. We were debating Trifacta and Airflow. Or even staying with Azure Data Factory. The use case will be to feed data to front-end APIs.

        See more
        jQuery logo

        jQuery

        191.8K
        68.2K
        6.6K
        The Write Less, Do More, JavaScript Library.
        191.8K
        68.2K
        + 1
        6.6K
        PROS OF JQUERY
        • 1.3K
          Cross-browser
        • 957
          Dom manipulation
        • 809
          Power
        • 660
          Open source
        • 610
          Plugins
        • 459
          Easy
        • 395
          Popular
        • 350
          Feature-rich
        • 281
          Html5
        • 227
          Light weight
        • 93
          Simple
        • 84
          Great community
        • 79
          CSS3 Compliant
        • 69
          Mobile friendly
        • 67
          Fast
        • 43
          Intuitive
        • 42
          Swiss Army knife for webdev
        • 35
          Huge Community
        • 11
          Easy to learn
        • 4
          Clean code
        • 3
          Because of Ajax request :)
        • 2
          Powerful
        • 2
          Nice
        • 2
          Just awesome
        • 2
          Used everywhere
        • 1
          Improves productivity
        • 1
          Javascript
        • 1
          Easy Setup
        • 1
          Open Source, Simple, Easy Setup
        • 1
          It Just Works
        • 1
          Industry acceptance
        • 1
          Allows great manipulation of HTML and CSS
        • 1
          Widely Used
        • 1
          I love jQuery
        CONS OF JQUERY
        • 6
          Large size
        • 5
          Sometimes inconsistent API
        • 5
          Encourages DOM as primary data source
        • 2
          Live events is overly complex feature

        related jQuery posts

        Kir Shatrov
        Engineering Lead at Shopify · | 22 upvotes · 2.4M views

        The client-side stack of Shopify Admin has been a long journey. It started with HTML templates, jQuery and Prototype. We moved to Batman.js, our in-house Single-Page-Application framework (SPA), in 2013. Then, we re-evaluated our approach and moved back to statically rendered HTML and vanilla JavaScript. As the front-end ecosystem matured, we felt that it was time to rethink our approach again. Last year, we started working on moving Shopify Admin to React and TypeScript.

        Many things have changed since the days of jQuery and Batman. JavaScript execution is much faster. We can easily render our apps on the server to do less work on the client, and the resources and tooling for developers are substantially better with React than we ever had with Batman.

        #FrameworksFullStack #Languages

        See more
        Ganesa Vijayakumar
        Full Stack Coder | Technical Architect · | 19 upvotes · 5.5M views

        I'm planning to create a web application and also a mobile application to provide a very good shopping experience to the end customers. Shortly, my application will be aggregate the product details from difference sources and giving a clear picture to the user that when and where to buy that product with best in Quality and cost.

        I have planned to develop this in many milestones for adding N number of features and I have picked my first part to complete the core part (aggregate the product details from different sources).

        As per my work experience and knowledge, I have chosen the followings stacks to this mission.

        UI: I would like to develop this application using React, React Router and React Native since I'm a little bit familiar on this and also most importantly these will help on developing both web and mobile apps. In addition, I'm gonna use the stacks JavaScript, jQuery, jQuery UI, jQuery Mobile, Bootstrap wherever required.

        Service: I have planned to use Java as the main business layer language as I have 7+ years of experience on this I believe I can do better work using Java than other languages. In addition, I'm thinking to use the stacks Node.js.

        Database and ORM: I'm gonna pick MySQL as DB and Hibernate as ORM since I have a piece of good knowledge and also work experience on this combination.

        Search Engine: I need to deal with a large amount of product data and it's in-detailed info to provide enough details to end user at the same time I need to focus on the performance area too. so I have decided to use Solr as a search engine for product search and suggestions. In addition, I'm thinking to replace Solr by Elasticsearch once explored/reviewed enough about Elasticsearch.

        Host: As of now, my plan to complete the application with decent features first and deploy it in a free hosting environment like Docker and Heroku and then once it is stable then I have planned to use the AWS products Amazon S3, EC2, Amazon RDS and Amazon Route 53. I'm not sure about Microsoft Azure that what is the specialty in it than Heroku and Amazon EC2 Container Service. Anyhow, I will do explore these once again and pick the best suite one for my requirement once I reached this level.

        Build and Repositories: I have decided to choose Apache Maven and Git as these are my favorites and also so popular on respectively build and repositories.

        Additional Utilities :) - I would like to choose Codacy for code review as their Startup plan will be very helpful to this application. I'm already experienced with Google CheckStyle and SonarQube even I'm looking something on Codacy.

        Happy Coding! Suggestions are welcome! :)

        Thanks, Ganesa

        See more
        React logo

        React

        172.9K
        142.7K
        4.1K
        A JavaScript library for building user interfaces
        172.9K
        142.7K
        + 1
        4.1K
        PROS OF REACT
        • 832
          Components
        • 673
          Virtual dom
        • 578
          Performance
        • 508
          Simplicity
        • 442
          Composable
        • 186
          Data flow
        • 166
          Declarative
        • 128
          Isn't an mvc framework
        • 120
          Reactive updates
        • 115
          Explicit app state
        • 50
          JSX
        • 29
          Learn once, write everywhere
        • 22
          Easy to Use
        • 21
          Uni-directional data flow
        • 17
          Works great with Flux Architecture
        • 11
          Great perfomance
        • 10
          Javascript
        • 9
          Built by Facebook
        • 8
          TypeScript support
        • 6
          Server Side Rendering
        • 6
          Speed
        • 5
          Feels like the 90s
        • 5
          Excellent Documentation
        • 5
          Props
        • 5
          Functional
        • 5
          Easy as Lego
        • 5
          Closer to standard JavaScript and HTML than others
        • 5
          Cross-platform
        • 5
          Easy to start
        • 5
          Hooks
        • 5
          Awesome
        • 5
          Scalable
        • 4
          Super easy
        • 4
          Allows creating single page applications
        • 4
          Server side views
        • 4
          Sdfsdfsdf
        • 4
          Start simple
        • 4
          Strong Community
        • 4
          Fancy third party tools
        • 4
          Scales super well
        • 3
          Has arrow functions
        • 3
          Beautiful and Neat Component Management
        • 3
          Just the View of MVC
        • 3
          Simple, easy to reason about and makes you productive
        • 3
          Fast evolving
        • 3
          SSR
        • 3
          Great migration pathway for older systems
        • 3
          Rich ecosystem
        • 3
          Simple
        • 3
          Has functional components
        • 3
          Every decision architecture wise makes sense
        • 3
          Very gentle learning curve
        • 2
          Split your UI into components with one true state
        • 2
          Image upload
        • 2
          Permissively-licensed
        • 2
          Fragments
        • 2
          Sharable
        • 2
          Recharts
        • 2
          HTML-like
        • 1
          React hooks
        • 1
          Datatables
        CONS OF REACT
        • 41
          Requires discipline to keep architecture organized
        • 30
          No predefined way to structure your app
        • 29
          Need to be familiar with lots of third party packages
        • 13
          JSX
        • 10
          Not enterprise friendly
        • 6
          One-way binding only
        • 3
          State consistency with backend neglected
        • 3
          Bad Documentation
        • 2
          Error boundary is needed
        • 2
          Paradigms change too fast

        related React posts

        Johnny Bell

        I was building a personal project that I needed to store items in a real time database. I am more comfortable with my Frontend skills than my backend so I didn't want to spend time building out anything in Ruby or Go.

        I stumbled on Firebase by #Google, and it was really all I needed. It had realtime data, an area for storing file uploads and best of all for the amount of data I needed it was free!

        I built out my application using tools I was familiar with, React for the framework, Redux.js to manage my state across components, and styled-components for the styling.

        Now as this was a project I was just working on in my free time for fun I didn't really want to pay for hosting. I did some research and I found Netlify. I had actually seen them at #ReactRally the year before and deployed a Gatsby site to Netlify already.

        Netlify was very easy to setup and link to my GitHub account you select a repo and pretty much with very little configuration you have a live site that will deploy every time you push to master.

        With the selection of these tools I was able to build out my application, connect it to a realtime database, and deploy to a live environment all with $0 spent.

        If you're looking to build out a small app I suggest giving these tools a go as you can get your idea out into the real world for absolutely no cost.

        See more
        Collins Ogbuzuru
        Front-end dev at Evolve credit · | 37 upvotes · 253.1K views

        Your tech stack is solid for building a real-time messaging project.

        React and React Native are excellent choices for the frontend, especially if you want to have both web and mobile versions of your application share code.

        ExpressJS is an unopinionated framework that affords you the flexibility to use it's features at your term, which is a good start. However, I would recommend you explore Sails.js as well. Sails.js is built on top of Express.js and it provides additional features out of the box, especially the Websocket integration that your project requires.

        Don't forget to set up Graphql codegen, this would improve your dev experience (Add Typescript, if you can too).

        I don't know much about databases but you might want to consider using NO-SQL. I used Firebase real-time db and aws dynamo db on a few of my personal projects and I love they're easy to work with and offer more flexibility for a chat application.

        See more
        AngularJS logo

        AngularJS

        60.9K
        44K
        5.3K
        Superheroic JavaScript MVW Framework
        60.9K
        44K
        + 1
        5.3K
        PROS OF ANGULARJS
        • 889
          Quick to develop
        • 589
          Great mvc
        • 573
          Powerful
        • 520
          Restful
        • 505
          Backed by google
        • 349
          Two-way data binding
        • 343
          Javascript
        • 329
          Open source
        • 307
          Dependency injection
        • 197
          Readable
        • 75
          Fast
        • 65
          Directives
        • 63
          Great community
        • 57
          Free
        • 38
          Extend html vocabulary
        • 29
          Components
        • 26
          Easy to test
        • 25
          Easy to learn
        • 24
          Easy to templates
        • 23
          Great documentation
        • 21
          Easy to start
        • 19
          Awesome
        • 18
          Light weight
        • 15
          Angular 2.0
        • 14
          Efficient
        • 14
          Javascript mvw framework
        • 14
          Great extensions
        • 11
          Easy to prototype with
        • 9
          High performance
        • 9
          Coffeescript
        • 8
          Two-way binding
        • 8
          Lots of community modules
        • 8
          Mvc
        • 7
          Easy to e2e
        • 7
          Clean and keeps code readable
        • 6
          One of the best frameworks
        • 6
          Easy for small applications
        • 5
          Works great with jquery
        • 5
          Fast development
        • 4
          I do not touch DOM
        • 4
          The two-way Data Binding is awesome
        • 3
          Hierarchical Data Structure
        • 3
          Be a developer, not a plumber.
        • 3
          Declarative programming
        • 3
          Typescript
        • 3
          Dart
        • 3
          Community
        • 2
          Fkin awesome
        • 2
          Opinionated in the right areas
        • 2
          Supports api , easy development
        • 2
          Common Place
        • 2
          Very very useful and fast framework for development
        • 2
          Linear learning curve
        • 2
          Great
        • 2
          Amazing community support
        • 2
          Readable code
        • 2
          Programming fun again
        • 2
          The powerful of binding, routing and controlling routes
        • 2
          Scopes
        • 2
          Consistency with backend architecture if using Nest
        • 1
          Fk react, all my homies hate react
        CONS OF ANGULARJS
        • 12
          Complex
        • 3
          Event Listener Overload
        • 3
          Dependency injection
        • 2
          Hard to learn
        • 2
          Learning Curve

        related AngularJS posts

        Simon Reymann
        Senior Fullstack Developer at QUANTUSflow Software GmbH · | 27 upvotes · 5.1M views

        Our whole Node.js backend stack consists of the following tools:

        • Lerna as a tool for multi package and multi repository management
        • npm as package manager
        • NestJS as Node.js framework
        • TypeScript as programming language
        • ExpressJS as web server
        • Swagger UI for visualizing and interacting with the API’s resources
        • Postman as a tool for API development
        • TypeORM as object relational mapping layer
        • JSON Web Token for access token management

        The main reason we have chosen Node.js over PHP is related to the following artifacts:

        • Made for the web and widely in use: Node.js is a software platform for developing server-side network services. Well-known projects that rely on Node.js include the blogging software Ghost, the project management tool Trello and the operating system WebOS. Node.js requires the JavaScript runtime environment V8, which was specially developed by Google for the popular Chrome browser. This guarantees a very resource-saving architecture, which qualifies Node.js especially for the operation of a web server. Ryan Dahl, the developer of Node.js, released the first stable version on May 27, 2009. He developed Node.js out of dissatisfaction with the possibilities that JavaScript offered at the time. The basic functionality of Node.js has been mapped with JavaScript since the first version, which can be expanded with a large number of different modules. The current package managers (npm or Yarn) for Node.js know more than 1,000,000 of these modules.
        • Fast server-side solutions: Node.js adopts the JavaScript "event-loop" to create non-blocking I/O applications that conveniently serve simultaneous events. With the standard available asynchronous processing within JavaScript/TypeScript, highly scalable, server-side solutions can be realized. The efficient use of the CPU and the RAM is maximized and more simultaneous requests can be processed than with conventional multi-thread servers.
        • A language along the entire stack: Widely used frameworks such as React or AngularJS or Vue.js, which we prefer, are written in JavaScript/TypeScript. If Node.js is now used on the server side, you can use all the advantages of a uniform script language throughout the entire application development. The same language in the back- and frontend simplifies the maintenance of the application and also the coordination within the development team.
        • Flexibility: Node.js sets very few strict dependencies, rules and guidelines and thus grants a high degree of flexibility in application development. There are no strict conventions so that the appropriate architecture, design structures, modules and features can be freely selected for the development.
        See more
        Simon Reymann
        Senior Fullstack Developer at QUANTUSflow Software GmbH · | 24 upvotes · 4.9M views

        Our whole Vue.js frontend stack (incl. SSR) consists of the following tools:

        • Nuxt.js consisting of Vue CLI, Vue Router, vuex, Webpack and Sass (Bundler for HTML5, CSS 3), Babel (Transpiler for JavaScript),
        • Vue Styleguidist as our style guide and pool of developed Vue.js components
        • Vuetify as Material Component Framework (for fast app development)
        • TypeScript as programming language
        • Apollo / GraphQL (incl. GraphiQL) for data access layer (https://apollo.vuejs.org/)
        • ESLint, TSLint and Prettier for coding style and code analyzes
        • Jest as testing framework
        • Google Fonts and Font Awesome for typography and icon toolkit
        • NativeScript-Vue for mobile development

        The main reason we have chosen Vue.js over React and AngularJS is related to the following artifacts:

        • Empowered HTML. Vue.js has many similar approaches with Angular. This helps to optimize HTML blocks handling with the use of different components.
        • Detailed documentation. Vue.js has very good documentation which can fasten learning curve for developers.
        • Adaptability. It provides a rapid switching period from other frameworks. It has similarities with Angular and React in terms of design and architecture.
        • Awesome integration. Vue.js can be used for both building single-page applications and more difficult web interfaces of apps. Smaller interactive parts can be easily integrated into the existing infrastructure with no negative effect on the entire system.
        • Large scaling. Vue.js can help to develop pretty large reusable templates.
        • Tiny size. Vue.js weights around 20KB keeping its speed and flexibility. It allows reaching much better performance in comparison to other frameworks.
        See more