What is Dropwizard and what are its top alternatives?
Dropwizard is a Java framework that combines various libraries to create standalone web services. It includes Jetty, Jersey, Jackson, and Metrics for building APIs quickly. Key features include easy deployment, centralized configuration, and monitoring capabilities. However, one limitation is that it may not be as flexible for complex applications compared to other frameworks.
Spring Boot: Spring Boot provides a powerful platform for building Java-based web applications with minimal configuration. Key features include a wide range of out-of-the-box modules, robust dependency injection, and seamless integration with other Spring projects. Pros: extensive community support, flexible configuration options. Cons: learning curve for beginners, potential performance overhead.
Micronaut: Micronaut is a modern JVM-based framework designed for building modular and lightweight microservices. Key features include fast startup time, dependency injection, and cloud-native support. Pros: efficient memory usage, integration with GraalVM for native image generation. Cons: less mature ecosystem compared to other frameworks, limited community resources.
Quarkus: Quarkus is a Kubernetes-native Java framework that optimizes Java specifically for containers and serverless applications. Key features include high performance, low memory footprint, and seamless integration with popular Java libraries. Pros: rapid development cycle, support for live coding. Cons: limited support for certain Java features, potential compatibility issues with existing codebases.
Helidon: Helidon is a collection of Java libraries for building microservices that are lightweight, reactive, and cloud-native. Key features include support for multiple programming models, integration with Eclipse MicroProfile, and seamless integration with Kubernetes. Pros: easy setup and deployment, built-in security features. Cons: limited tooling and documentation compared to other frameworks, smaller community.
Play Framework: Play Framework is a reactive web application framework for building scalable and high-performance web applications using Java or Scala. Key features include asynchronous programming support, hot code reloading, and built-in testing tools. Pros: intuitive API design, support for reactive programming. Cons: learning curve for beginners, potential performance bottlenecks in complex applications.
Vert.x: Vert.x is a lightweight and reactive toolkit for building high-performance microservices and distributed applications on the JVM. Key features include event-driven programming, fast performance, and support for multiple programming languages. Pros: non-blocking I/O model, efficient memory usage. Cons: steep learning curve for beginners, limited support for enterprise features.
Spark Java: Spark Java is a micro web framework for creating web applications in Java with minimal effort. Key features include a simple and expressive API, easy routing, and template engine support. Pros: lightweight and easy to get started, seamless integration with other Java libraries. Cons: limited scalability for large and complex applications, lack of advanced features compared to other frameworks.
Ratpack: Ratpack is a simple, lightweight, and asynchronous web framework for Java that focuses on high performance and developer productivity. Key features include reactive programming, simple API, and flexible configuration options. Pros: fast performance, easy-to-use DSL for defining routes. Cons: limited community support and resources, may require additional setup for complex scenarios.
Jooby: Jooby is a modern and modular micro web framework for Java that simplifies web development through a powerful routing engine and easy-to-use syntax. Key features include support for dependency injection, built-in WebSocket support, and simplified configuration. Pros: flexible and modular design, integration with popular Java technologies. Cons: smaller community compared to other frameworks, potential learning curve for beginners.
Ninja Framework: Ninja Framework is a full-stack web application framework for Java that focuses on simplicity, ease of use, and performance. Key features include support for RESTful APIs, seamless integration with frontend technologies, and built-in testing capabilities. Pros: intuitive design, fast performance. Cons: limited documentation and examples, lack of advanced features for complex applications.
Top Alternatives to Dropwizard
- 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. ...
- Play
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. ...
- 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. ...
- Dropwizard Metrics
It is a Java library which gives you insight into what your code does in production. It provides a powerful toolkit of ways to measure the behavior of critical components in your production environment. It provides you with full-stack visibility. ...
- Jersey
It is open source, production quality, framework for developing RESTful Web Services in Java that provides support for JAX-RS APIs and serves as a JAX-RS (JSR 311 & JSR 339) Reference Implementation. It provides it鈥檚 own API that extend the JAX-RS toolkit with additional features and utilities to further simplify RESTful service and client development. ...
- Micronaut Framework
It is a modern, JVM-based, full-stack framework for building modular, easily testable microservice and serverless applications. It features a Dependency Injection and Aspect-Oriented Programming runtime that uses no reflection. ...
- Prometheus
Prometheus is a systems and service monitoring system. It collects metrics from configured targets at given intervals, evaluates rule expressions, displays the results, and can trigger alerts if some condition is observed to be true. ...
- Quarkus
It tailors your application for GraalVM and HotSpot. Amazingly fast boot time, incredibly low RSS memory (not just heap size!) offering near instant scale up and high density memory utilization in container orchestration platforms like Kubernetes. We use a technique we call compile time boot. ...
Dropwizard alternatives & related posts
Spring Boot
- Powerful and handy149
- Easy setup134
- Java128
- Spring90
- Fast85
- Extensible46
- Lots of "off the shelf" functionalities37
- Cloud Solid32
- Caches well26
- Productive24
- Many receipes around for obscure features24
- Modular23
- Integrations with most other Java frameworks23
- Spring ecosystem is great22
- Auto-configuration21
- Fast Performance With Microservices21
- Community18
- Easy setup, Community Support, Solid for ERP apps17
- One-stop shop15
- Easy to parallelize14
- Cross-platform14
- Easy setup, good for build erp systems, well documented13
- Powerful 3rd party libraries and frameworks13
- Easy setup, Git Integration12
- It's so easier to start a project on spring5
- Kotlin4
- Microservice and Reactive Programming1
- The ability to integrate with the open source ecosystem1
- Heavy weight23
- Annotation ceremony18
- Java13
- Many config files needed11
- Reactive5
- Excellent tools for cloud hosting, since 5.x4
- Java 馃槖馃槖1
related Spring Boot posts
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
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.
- Scala81
- Web-friendly architecture55
- Built on akka55
- Stateless50
- High-scalable47
- Fast46
- Open source40
- Java34
- High velocity27
- Fun24
- Lightweight9
- Non-blocking io8
- Developer friendly6
- Simple template engine5
- Scalability4
- 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?
Scala Akka Kafka Play Spark Framework Hiring for various companies around London and Europe,
Salarys upto 拢100,000 Junior-Senior Engineers, Scala/Akka/Kafka
Get in touch with me for more details!
Spring
- Java230
- Open source157
- Great community136
- Very powerful123
- Enterprise114
- Lot of great subprojects64
- Easy setup60
- Convention , configuration, done44
- Standard40
- Love the logic31
- Good documentation13
- Dependency injection11
- Stability11
- MVC9
- Easy6
- Makes the hard stuff fun & the easy stuff automatic3
- Strong typing3
- Code maintenance2
- Best practices2
- Maven2
- Great Desgin2
- Easy Integration with Spring Security2
- Integrations with most other Java frameworks2
- Java has more support and more libraries1
- Supports vast databases1
- Large ecosystem with seamless integration1
- OracleDb integration1
- Live project1
- Draws you into its own ecosystem and bloat15
- Verbose configuration3
- Poor documentation3
- Java3
- Java is more verbose language in compare to python2
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.
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.
related Dropwizard Metrics posts
- Lightweight4
- Fast Performance With Microservices1
- Java standard1
related Jersey posts
- Compilable to machine code12
- Tiny memory footprint8
- Open source7
- Almost instantaneous startup7
- Tiny compiled code size6
- High Escalability4
- Minimal overhead2
- Hasn't Servlet API2
- Simplified reactive programming2
- Serverless support1
- Jakarta EE1
- No hot reload3
related Micronaut Framework posts
Prometheus
- Powerful easy to use monitoring47
- Flexible query language38
- Dimensional data model32
- Alerts27
- Active and responsive community23
- Extensive integrations22
- Easy to setup19
- Beautiful Model and Query language12
- Easy to extend7
- Nice6
- Written in Go3
- Good for experimentation2
- Easy for monitoring1
- Just for metrics12
- Bad UI6
- Needs monitoring to access metrics endpoints6
- Not easy to configure and use4
- Supports only active agents3
- Written in Go2
- TLS is quite difficult to understand2
- Requires multiple applications and tools2
- Single point of failure1
related Prometheus posts
Grafana and Prometheus together, running on Kubernetes , is a powerful combination. These tools are cloud-native and offer a large community and easy integrations. At PayIt we're using exporting Java application metrics using a Dropwizard metrics exporter, and our Node.js services now use the prom-client npm library to serve metrics.
Why we spent several years building an open source, large-scale metrics alerting system, M3, built for Prometheus:
By late 2014, all services, infrastructure, and servers at Uber emitted metrics to a Graphite stack that stored them using the Whisper file format in a sharded Carbon cluster. We used Grafana for dashboarding and Nagios for alerting, issuing Graphite threshold checks via source-controlled scripts. While this worked for a while, expanding the Carbon cluster required a manual resharding process and, due to lack of replication, any single node鈥檚 disk failure caused permanent loss of its associated metrics. In short, this solution was not able to meet our needs as the company continued to grow.
To ensure the scalability of Uber鈥檚 metrics backend, we decided to build out a system that provided fault tolerant metrics ingestion, storage, and querying as a managed platform...
(GitHub : https://github.com/m3db/m3)
Quarkus
- Fast startup13
- Open source13
- Low memory footprint11
- Integrated with GraalVM10
- Produce native code10
- Hot Reload9
- AOT compilation7
- Reactive6
- Boilerplate code when using Reflection2
related Quarkus posts
We are working on a transaction processing application and everything needs to happen in real-time. I have used AWS Lambda with Quarkus + Java, and struggled with cold start time however Lambda is still cost effective. so wanted to understand which one will be suitable as alternative to lambda services.
We use Quarkus with native compilation in GraalVM for our global REST-API "Charon", that can be used by every developer to request user, server and game-data (protected through OAuth2). Quarkus offers a reliable framework, library and stack for high-quality APIs and integrates Vert.x into its core.
GraalVM pushes the performance boundaries even further with the ability to perform ahead-of-time native compilation so we can reach an incredible small memory-footprint and fast bootup-times that we need for our microservices architecture.