Apollo: Spotify's Java libraries for writing micro-services
spotify.github.io
spotify.github.io
Interesting phrasing. I really hope people are choosing the best architecture for their application and not heading into microservices land because it's hot or "in vogue".
(Note, mtolan, not assuming anything about you or your choices here.)
Came here to ask this too, if anyone in the know can provide an answer, because it doesn't seem to address this point in the readme from what I can see.
Looking at the examples on github, the thing I notice immediately is that it seems more DIY in nature, with seemingly all the libraries required for dealing with http, middleware, routing, etc written from scratch, as opposed to Dropwizard's approach of pulling together popular existing libraries to do all these things and providing really only the the glue code to piece them together as a framework.
However, I can imagine having to pay for this once you need some more advanced features. Dropwizard comes with a lot of stuff for configuration management and integration, which I guess is mostly missing in Apollo.
I think what is happening is the getting started guide for dropwizard looks significantly more indepth than the Apollo guide, covering some features that are entirely optional (and may not even be supported by Apollo.)
I tend to have an attitude similiar to the java side. I wouldn't say the javascript attitude doesn't have benefits though.
I think it's more important to consider the support behind a technology vital to your stack so you can expect to regularly integrate improvements, security fixes, etc.
But this library, a bunch of Google stuff, most of Netflix's stuff -- it seems like the real, this-makes-money work is still done in Java. Am I wrong? Is Java not dead at all?
Java's in the running to be the world's most widely used programming language. This is, in large part, due to Android.
http://news.softpedia.com/news/the-top-10-all-time-programmi...
It so happens that a lot of companies have bet their stacks on Java. Java is the language of Hadoop. In addition to the companies you mention, there's Amazon, eBay, Facebook, LinkedIn, Twitter. (There are plenty of other great languages that outperform Java in one way or another, but this post is just to make that point that Java is far from dead...)
It's a stable language with a huge ecosystem, that's growing all the time. Our project, http://deeplearning4j.org, gives it deep neural networks that run distributed...
If you have lots of money to hire a bigger team and you want to be able to handle lots of users on fewer machines then Java (or even C++) makes sense.
I know you don't like talking about it, but do you have something to share about its performance?
I'm not saying only play has this problem, almost all java frameworks from the time of play have similar properties.
On the other hand, it is slow, embarrassingly slow (try running it on RPi). For me it's really complicated as well. You have routes file (which is redundant). Templating language forces you to write Scala which then uses a Scala compiler to compile which it is really slow (even Martin said it's slow). It's a vicious circle.
It's probably a stretch to say that Amazon's Apollo has a bigger "market share", because it's not on the market. AWS CodeDeploy may be similar--haven't checked it out. Nevertheless, the Amazon Apollo's user base is probably way bigger than ActiveMQ's or Spotify's Apollo :)
Also, it seems the Greeks have stolen the name for one of their gods too.
I read about it some time ago.