What is Finagle and what are its top alternatives?
Top Alternatives to Finagle
At Twitter, Finagle provides the building blocks for most of the code written on the JVM. It has long-served as Twitter's extensible, protocol-agnostic, highly-scalable RPC framework. ...
gRPC is a modern open source high performance RPC framework that can run in any environment. It can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking... ...
Akka is a toolkit and runtime for building highly concurrent, distributed, and resilient message-driven applications on the JVM. ...
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. ...
Play Framework makes it easy to build web applications with Java & Scala. Play is based on a lightweight, stateless, web-friendly architecture. Built on Akka, Play provides predictable and minimal resource consumption (CPU, memory, threads) for highly-scalable applications. ...
The Akka HTTP modules implement a full server- and client-side HTTP stack on top of akka-actor and akka-stream. It’s not a web-framework but rather a more general toolkit for providing and consuming HTTP-based services. While interaction with a browser is of course also in scope it is not the primary focus of Akka HTTP. ...
RxJS is a library for reactive programming using Observables, to make it easier to compose asynchronous or callback-based code. This project is a rewrite of Reactive-Extensions/RxJS with better performance, better modularity, better debuggable call stacks, while staying mostly backwards compatible, with some breaking changes that reduce the API surface. ...
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. ...
Finagle alternatives & related posts
related Finatra posts
- Higth performance17
- Easy setup10
- The future of API9
related gRPC posts
By mid-2015, Uber’s rider growth coupled with its cadence of releasing new services, like Eats and Freight, was pressuring the infrastructure. To allow the decoupling of consumption from production, and to add an abstraction layer between users, developers, and infrastructure, Uber built Catalyst, a serverless internal service mesh.
Uber decided to build their own severless solution, rather that using something like AWS Lambda, speed for its global production environments as well as introspectability.
- Great concurrency model29
- Actor Library10
- Open source9
- Message driven5
- Mixing futures with Akka tell is difficult3
- Closing of futures2
- No type safety2
- Typed actors still not stable1
- Very difficult to refactor0
related Akka posts
To solve the problem of scheduling and executing arbitrary tasks in its distributed infrastructure, PagerDuty created an open-source tool called Scheduler. Scheduler is written in Scala and uses Cassandra for task persistence. It also adds Apache Kafka to handle task queuing and partitioning, with Akka to structure the library’s concurrency.
The service’s logic schedules a task by passing it to the Scheduler’s Scala API, which serializes the task metadata and enqueues it into Kafka. Scheduler then consumes the tasks, and posts them to Cassandra to prevent data loss.
- Powerful and handy131
- Easy setup122
- Lots of "off the shelf" functionalities33
- Cloud Solid28
- Caches well22
- Many receipes around for obscure features20
- Integrations with most other Java frameworks18
- Spring ecosystem is great17
- Fast Performance With Microservices17
- Easy setup, Community Support, Solid for ERP apps12
- One-stop shop12
- Easy to parallelize11
- Easy setup, good for build erp systems, well documented10
- Powerful 3rd party libraries and frameworks10
- Easy setup, Git Integration9
- It's so easier to start a project on spring2
- Heavy weight18
- Annotation ceremony17
- Many config files needed10
- Excellent tools for cloud hosting, since 5.x4
related Spring Boot 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.
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
- Built on akka55
- Web-friendly architecture55
- Open source39
- High velocity27
- Non-blocking io8
- Developer friendly5
- Simple template engine5
- Pure love3
- Resource efficient2
- Evolves fast, keep up with releases3
- Unnecessarily complicated1
related Play posts
Some may wonder why did we choose Grails ? Really good question :) We spent quite some time to evaluate what framework to go with and the battle was between Play Scala and Grails ( Groovy ). We have enough experience with both and, to be honest, I absolutely in love with Scala; however, the tipping point for us was the potential speed of development. Grails allows much faster development pace than Play , and as of right now this is the most important parameter. We might convert later though. Also, worth mentioning, by default Grails comes with Gradle as a build tool, so why change?
related Akka HTTP posts
- Easier async data chaining and combining4
- Steep learning curve, but offers predictable operations3
- Works great with any state management implementation2
- Easier testing2
- Ability to build your own stream1
- Steep learning curve1