Alternatives to Akka logo

Alternatives to Akka

Spring, Scala, Erlang, Kafka, and Spring Boot are the most popular alternatives and competitors to Akka.
1.1K
993
+ 1
88

What is Akka and what are its top alternatives?

Akka is a toolkit and runtime for building highly concurrent, distributed, and resilient message-driven applications on the JVM.
Akka is a tool in the Concurrency Frameworks category of a tech stack.
Akka is an open source tool with 12.8K GitHub stars and 3.6K GitHub forks. Here’s a link to Akka's open source repository on GitHub

Top Alternatives to Akka

  • Spring
    Spring

    A key element of Spring is infrastructural support at the application level: Spring focuses on the "plumbing" of enterprise applications so that teams can focus on application-level business logic, without unnecessary ties to specific deployment environments. ...

  • Scala
    Scala

    Scala is an acronym for “Scalable Language”. This means that Scala grows with you. You can play with it by typing one-line expressions and observing the results. But you can also rely on it for large mission critical systems, as many companies, including Twitter, LinkedIn, or Intel do. To some, Scala feels like a scripting language. Its syntax is concise and low ceremony; its types get out of the way because the compiler can infer them. ...

  • Erlang
    Erlang

    Some of Erlang's uses are in telecoms, banking, e-commerce, computer telephony and instant messaging. Erlang's runtime system has built-in support for concurrency, distribution and fault tolerance. OTP is set of Erlang libraries and design principles providing middle-ware to develop these systems. ...

  • Kafka
    Kafka

    Kafka is a distributed, partitioned, replicated commit log service. It provides the functionality of a messaging system, but with a unique design. ...

  • Spring Boot
    Spring Boot

    Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration. ...

  • 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. ...

  • Orleans
    Orleans

    Orleans is a framework that provides a straightforward approach to building distributed high-scale computing applications, without the need to learn and apply complex concurrency or other scaling patterns. It was created by Microsoft Research and designed for use in the cloud. ...

  • Netty
    Netty

    Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients. It greatly simplifies and streamlines network programming such as TCP and UDP socket server. ...

Akka alternatives & related posts

Spring logo

Spring

3.8K
4.6K
1.1K
Provides a comprehensive programming and configuration model for modern Java-based enterprise applications
3.8K
4.6K
+ 1
1.1K
PROS OF SPRING
  • 228
    Java
  • 157
    Open source
  • 135
    Great community
  • 123
    Very powerful
  • 114
    Enterprise
  • 64
    Lot of great subprojects
  • 59
    Easy setup
  • 44
    Convention , configuration, done
  • 40
    Standard
  • 30
    Love the logic
  • 12
    Good documentation
  • 11
    Dependency injection
  • 10
    Stability
  • 8
    MVC
  • 6
    Easy
  • 3
    Makes the hard stuff fun & the easy stuff automatic
  • 3
    Strong typing
  • 2
    Code maintenance
  • 2
    Best practices
  • 2
    Maven
  • 2
    Great Desgin
  • 2
    Easy Integration with Spring Security
  • 2
    Integrations with most other Java frameworks
  • 1
    Java has more support and more libraries
  • 1
    Supports vast databases
  • 1
    Large ecosystem with seamless integration
  • 1
    OracleDb integration
  • 1
    Live project
CONS OF SPRING
  • 15
    Draws you into its own ecosystem and bloat
  • 3
    Verbose configuration
  • 3
    Poor documentation
  • 3
    Java
  • 2
    Java is more verbose language in compare to python

related Spring posts

Is learning Spring and Spring Boot for web apps back-end development is still relevant in 2021? Feel free to share your views with comparison to Django/Node.js/ ExpressJS or other frameworks.

Please share some good beginner resources to start learning about spring/spring boot framework to build the web apps.

See more

I am consulting for a company that wants to move its current CubeCart e-commerce site to another PHP based platform like PrestaShop or Magento. I was interested in alternatives that utilize Node.js as the primary platform. I currently don't know PHP, but I have done full stack dev with Java, Spring, Thymeleaf, etc.. I am just unsure that learning a set of technologies not commonly used makes sense. For example, in PrestaShop, I would need to work with JavaScript better and learn PHP, Twig, and Bootstrap. It seems more cumbersome than a Node JS system, where the language syntax stays the same for the full stack. I am looking for thoughts and advice on the relevance of PHP skillset into the future AND whether the Node based e-commerce open source options can compete with Magento or Prestashop.

See more
Scala logo

Scala

11.2K
7.5K
1.5K
A pure-bred object-oriented language that runs on the JVM
11.2K
7.5K
+ 1
1.5K
PROS OF SCALA
  • 187
    Static typing
  • 178
    Pattern-matching
  • 177
    Jvm
  • 172
    Scala is fun
  • 138
    Types
  • 95
    Concurrency
  • 88
    Actor library
  • 86
    Solve functional problems
  • 81
    Open source
  • 80
    Solve concurrency in a safer way
  • 44
    Functional
  • 24
    Fast
  • 23
    Generics
  • 18
    It makes me a better engineer
  • 17
    Syntactic sugar
  • 13
    Scalable
  • 10
    First-class functions
  • 10
    Type safety
  • 9
    Interactive REPL
  • 8
    Expressive
  • 7
    SBT
  • 6
    Case classes
  • 6
    Implicit parameters
  • 4
    Rapid and Safe Development using Functional Programming
  • 4
    JVM, OOP and Functional programming, and static typing
  • 4
    Object-oriented
  • 4
    Used by Twitter
  • 3
    Functional Proframming
  • 2
    Spark
  • 2
    Beautiful Code
  • 2
    Safety
  • 2
    Growing Community
  • 1
    DSL
  • 1
    Rich Static Types System and great Concurrency support
  • 1
    Naturally enforce high code quality
  • 1
    Akka Streams
  • 1
    Akka
  • 1
    Reactive Streams
  • 1
    Easy embedded DSLs
  • 1
    Mill build tool
  • 0
    Freedom to choose the right tools for a job
CONS OF SCALA
  • 11
    Slow compilation time
  • 7
    Multiple ropes and styles to hang your self
  • 6
    Too few developers available
  • 4
    Complicated subtyping
  • 2
    My coworkers using scala are racist against other stuff

related Scala posts

Shared insights
on
JavaJavaScalaScalaApache SparkApache Spark

I am new to Apache Spark and Scala both. I am basically a Java developer and have around 10 years of experience in Java.

I wish to work on some Machine learning or AI tech stacks. Please assist me in the tech stack and help make a clear Road Map. Any feedback is welcome.

Technologies apart from Scala and Spark are also welcome. Please note that the tools should be relevant to Machine Learning or Artificial Intelligence.

See more
Marc Bollinger
Infra & Data Eng Manager at Thumbtack · | 5 upvotes · 1.6M views

Lumosity is home to the world's largest cognitive training database, a responsibility we take seriously. For most of the company's history, our analysis of user behavior and training data has been powered by an event stream--first a simple Node.js pub/sub app, then a heavyweight Ruby app with stronger durability. Both supported decent throughput and latency, but they lacked some major features supported by existing open-source alternatives: replaying existing messages (also lacking in most message queue-based solutions), scaling out many different readers for the same stream, the ability to leverage existing solutions for reading and writing, and possibly most importantly: the ability to hire someone externally who already had expertise.

We ultimately migrated to Kafka in early- to mid-2016, citing both industry trends in companies we'd talked to with similar durability and throughput needs, the extremely strong documentation and community. We pored over Kyle Kingsbury's Jepsen post (https://aphyr.com/posts/293-jepsen-Kafka), as well as Jay Kreps' follow-up (http://blog.empathybox.com/post/62279088548/a-few-notes-on-kafka-and-jepsen), talked at length with Confluent folks and community members, and still wound up running parallel systems for quite a long time, but ultimately, we've been very, very happy. Understanding the internals and proper levers takes some commitment, but it's taken very little maintenance once configured. Since then, the Confluent Platform community has grown and grown; we've gone from doing most development using custom Scala consumers and producers to being 60/40 Kafka Streams/Connects.

We originally looked into Storm / Heron , and we'd moved on from Redis pub/sub. Heron looks great, but we already had a programming model across services that was more akin to consuming a message consumers than required a topology of bolts, etc. Heron also had just come out while we were starting to migrate things, and the community momentum and direction of Kafka felt more substantial than the older Storm. If we were to start the process over again today, we might check out Pulsar , although the ecosystem is much younger.

To find out more, read our 2017 engineering blog post about the migration!

See more
Erlang logo

Erlang

1.3K
731
327
A programming language used to build massively scalable soft real-time systems with requirements on high availability
1.3K
731
+ 1
327
PROS OF ERLANG
  • 60
    Concurrency Support
  • 60
    Real time, distributed applications
  • 56
    Fault tolerance
  • 35
    Soft real-time
  • 31
    Open source
  • 21
    Functional programming
  • 20
    Message passing
  • 15
    Immutable data
  • 13
    Works as expected
  • 5
    Facebook chat uses it at backend
  • 4
    Practical
  • 4
    Knowledgeable community
  • 3
    Bullets included
CONS OF ERLANG
    Be the first to leave a con

    related Erlang posts

    Sebastian Gębski

    Another major decision was to adopt Elixir and Phoenix Framework - the DX (Developer eXperience) is pretty similar to what we know from RoR, but this tech is running on the top of rock-solid Erlang platform which is powering planet-scale telecom solutions for 20+ years. So we're getting pretty much the best from both worlds: minimum friction & smart conventions that eliminate the excessive boilerplate AND highly concurrent EVM (Erlang's Virtual Machine) that makes all the scalability problems vanish. The transition was very smooth - none of Ruby developers we had decided to leave because of Elixir. What is more, we kept recruiting Ruby developers w/o any requirement regarding Elixir proficiency & we still were able to educate them internally in almost no time. Obviously Elixir comes with some more tools in the stack: Credo , Hex , AppSignal (required to properly monitor BEAM apps).

    See more

    Hello everyone, I plan on building a platform that supports 100s of forums out of the box, it would give the user the ability to create forums, where other users can comment, post images, and videos (the size of videos would be limited). Each forum would have the ability to trend. I have been doing a lot of research and I have arrived at Golang and Erlang as the backend languages and PostgreSQL as the DB. Erlang would be used for the routing of chats and messages, while Go would be used to manage the forums. We would also be implementing a one on one chat system like WhatsApp chat, where users can add contacts.

    Please I would like to know if the languages picked are appropriate for this project. Suggestions would be appreciated.

    See more
    Kafka logo

    Kafka

    22.2K
    20.8K
    605
    Distributed, fault tolerant, high throughput pub-sub messaging system
    22.2K
    20.8K
    + 1
    605
    PROS OF KAFKA
    • 126
      High-throughput
    • 119
      Distributed
    • 92
      Scalable
    • 86
      High-Performance
    • 66
      Durable
    • 38
      Publish-Subscribe
    • 19
      Simple-to-use
    • 18
      Open source
    • 12
      Written in Scala and java. Runs on JVM
    • 8
      Message broker + Streaming system
    • 4
      Robust
    • 4
      KSQL
    • 4
      Avro schema integration
    • 3
      Suport Multiple clients
    • 2
      Partioned, replayable log
    • 1
      Flexible
    • 1
      Extremely good parallelism constructs
    • 1
      Fun
    • 1
      Simple publisher / multi-subscriber model
    CONS OF KAFKA
    • 32
      Non-Java clients are second-class citizens
    • 29
      Needs Zookeeper
    • 9
      Operational difficulties
    • 4
      Terrible Packaging

    related Kafka posts

    Eric Colson
    Chief Algorithms Officer at Stitch Fix · | 21 upvotes · 5.3M 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
    John Kodumal

    As we've evolved or added additional infrastructure to our stack, we've biased towards managed services. Most new backing stores are Amazon RDS instances now. We do use self-managed PostgreSQL with TimescaleDB for time-series data—this is made HA with the use of Patroni and Consul.

    We also use managed Amazon ElastiCache instances instead of spinning up Amazon EC2 instances to run Redis workloads, as well as shifting to Amazon Kinesis instead of Kafka.

    See more
    Spring Boot logo

    Spring Boot

    24.2K
    22K
    1K
    Create Spring-powered, production-grade applications and services with absolute minimum fuss
    24.2K
    22K
    + 1
    1K
    PROS OF SPRING BOOT
    • 145
      Powerful and handy
    • 133
      Easy setup
    • 125
      Java
    • 90
      Spring
    • 85
      Fast
    • 46
      Extensible
    • 37
      Lots of "off the shelf" functionalities
    • 32
      Cloud Solid
    • 26
      Caches well
    • 24
      Many receipes around for obscure features
    • 24
      Productive
    • 23
      Modular
    • 23
      Integrations with most other Java frameworks
    • 22
      Spring ecosystem is great
    • 21
      Fast Performance With Microservices
    • 20
      Auto-configuration
    • 18
      Community
    • 17
      Easy setup, Community Support, Solid for ERP apps
    • 15
      One-stop shop
    • 14
      Cross-platform
    • 14
      Easy to parallelize
    • 13
      Powerful 3rd party libraries and frameworks
    • 13
      Easy setup, good for build erp systems, well documented
    • 12
      Easy setup, Git Integration
    • 5
      It's so easier to start a project on spring
    • 4
      Kotlin
    • 1
      The ability to integrate with the open source ecosystem
    • 1
      Microservice and Reactive Programming
    CONS OF SPRING BOOT
    • 23
      Heavy weight
    • 18
      Annotation ceremony
    • 13
      Java
    • 11
      Many config files needed
    • 5
      Reactive
    • 4
      Excellent tools for cloud hosting, since 5.x

    related Spring Boot posts

    Praveen Mooli
    Engineering Manager at Taylor and Francis · | 18 upvotes · 3.1M views

    We are in the process of building a modern content platform to deliver our content through various channels. We decided to go with Microservices architecture as we wanted scale. Microservice architecture style is an approach to developing an application as a suite of small independently deployable services built around specific business capabilities. You can gain modularity, extensive parallelism and cost-effective scaling by deploying services across many distributed servers. Microservices modularity facilitates independent updates/deployments, and helps to avoid single point of failure, which can help prevent large-scale outages. We also decided to use Event Driven Architecture pattern which is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.

    To build our #Backend capabilities we decided to use the following: 1. #Microservices - Java with Spring Boot , Node.js with ExpressJS and Python with Flask 2. #Eventsourcingframework - Amazon Kinesis , Amazon Kinesis Firehose , Amazon SNS , Amazon SQS, AWS Lambda 3. #Data - Amazon RDS , Amazon DynamoDB , Amazon S3 , MongoDB Atlas

    To build #Webapps we decided to use Angular 2 with RxJS

    #Devops - GitHub , Travis CI , Terraform , Docker , Serverless

    See more

    Is learning Spring and Spring Boot for web apps back-end development is still relevant in 2021? Feel free to share your views with comparison to Django/Node.js/ ExpressJS or other frameworks.

    Please share some good beginner resources to start learning about spring/spring boot framework to build the web apps.

    See more
    Apache Spark logo

    Apache Spark

    3.1K
    3.4K
    139
    Fast and general engine for large-scale data processing
    3.1K
    3.4K
    + 1
    139
    PROS OF APACHE SPARK
    • 60
      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
      In memory Computation
    • 2
      Machine learning libratimery, Streaming in real
    CONS OF APACHE SPARK
    • 4
      Speed

    related Apache Spark posts

    Eric Colson
    Chief Algorithms Officer at Stitch Fix · | 21 upvotes · 5.3M 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
    Conor Myhrvold
    Tech Brand Mgr, Office of CTO at Uber · | 7 upvotes · 2.6M views

    Why we built Marmaray, an open source generic data ingestion and dispersal framework and library for Apache Hadoop :

    Built and designed by our Hadoop Platform team, Marmaray is a plug-in-based framework built on top of the Hadoop ecosystem. Users can add support to ingest data from any source and disperse to any sink leveraging the use of Apache Spark . The name, Marmaray, comes from a tunnel in Turkey connecting Europe and Asia. Similarly, we envisioned Marmaray within Uber as a pipeline connecting data from any source to any sink depending on customer preference:

    https://eng.uber.com/marmaray-hadoop-ingestion-open-source/

    (Direct GitHub repo: https://github.com/uber/marmaray Kafka Kafka Manager )

    See more
    Orleans logo

    Orleans

    59
    123
    41
    An approach to building distributed applications in .NET
    59
    123
    + 1
    41
    PROS OF ORLEANS
    • 5
      Akka.net alternative
    • 5
      Async/Await
    • 4
      Open source
    • 4
      Distributed ACID Transactions
    • 4
      Scalable
    • 4
      Distributed high-scale computing applications
    • 4
      Virtual Actor Model
    • 3
      Objects
    • 3
      Cross Platform
    • 3
      Distributed Locking
    • 2
      Fast
    CONS OF ORLEANS
      Be the first to leave a con

      related Orleans posts

      Netty logo

      Netty

      262
      399
      16
      Asynchronous event-driven network application framework
      262
      399
      + 1
      16
      PROS OF NETTY
      • 9
        High Performance
      • 4
        Easy to use
      • 3
        Just like it
      CONS OF NETTY
      • 2
        Limited resources to learn from

      related Netty posts