Hey Roland I just want to revive this thread because of my interest in Akka as a SOA platform. I do believe Akka has what it takes to get the job done (particularly with the new spray integration). However, I think there are still some missing pieces. Akka is a relatively low level framework, providing great flexibility and power to the users. However, as we all know with great power comes great responsibility, i.e., it's easy to make the wrong design choices. What I'm getting at is that it would be useful to build some additional infrastructure on top of Akka cluster to implement some common SOA patterns and move the user effort to high level service definition and configuration that can be plugged in an existing framework. Some of these patterns include but are not limited to:
- Security (authentication/authorization) - Transactional services (ORM or NoSQL) and/or business locks - Endpoints (REST, etc.) - Client code generation (lightweight client libraries that can talk to services using known protocols) - Periodic tasks (schedulers, at-most-once execution) - Work queue - Service monitoring - ... I might be hitting an enterprise layer that Akka is not specifically built for but I think a framework like this would be invaluable to give Akka even more visibility and appeal. I am currently working on designing and implementing some of these pattern using Akka and I would gladly share my experience and code if that sounds like an interesting idea. In the meantime I'd like your feedback and to open a discussion about the best ways to proceed with the implementation and what existing projects/code examples might work as a baseline. Giovanni On Wednesday, April 24, 2013 4:28:06 AM UTC-4, rkuhn wrote: > > Hi Yuesong, > > 23 apr 2013 kl. 15:11 skrev yues...@gmail.com <javascript:>: > > This is a use case question. I am exploring feasibility of using akka > cluster as the underlying framework to build out a service oriented > infrastructure. The architecture consists of an internet facing edge layer > serving a public API; behind the edge, any number of internal services may > be deployed; when a web request comes in, the edge will delegate to the > internal services for business logic processing, aggregate the results and > respond. The edge will take care of web request handling, service > discovery, load balancing, circuit breaker, retry etc. while individual > service will implement a specific business logic. In a way, it is similar > to twitter's Finagle I suppose. > > The cluster including the edge and services can have up to a few hundred > servers that are co-located in the same data center. It is critical to > minimize latency and avoid blocking IO between edge nodes and service > nodes. Akka cluster seems to be a good fit on a high level, but I'd like to > get some expert opinions given the scale and latency requirements. I have > worked with 2.0.x but not 2.1 or 2.2 yet, so any pointer as to what to look > for and how to prototype/benchmark is also much appreciated. > > > Your description matches our mental model of how to make most of > akka-cluster, so I definitely think that you are looking in the right > direction. You will need features which are part of the upcoming 2.2 > release (like different node roles for front-end and different services) so > it makes sense to start trying out the latest milestone 2.2-M3 which is a > feature-complete preview. The scale of “a few hundred nodes” matches what > other customers are using the experimental cluster support in Akka 2.1 for, > and there is no blocking IO in Akka 2.2’s remoting layer (only connection > establishment is blocking up to 2.1). You did not state your latency > requirements, hence I cannot give a blanket answer on that point. > > We’ll be happy to answer further concrete questions you have, but it might > also be worthwhile to consider more focused commercial support (including > architecture review etc.); in the latter case please send a mail off-list. > > Regards, > > > *Dr. Roland Kuhn* > *Akka Tech Lead* > Typesafe <http://typesafe.com/> – Empowering professional developers to > build amazing apps. > twitter: @rolandkuhn <http://twitter.com/#!/rolandkuhn> > > -- >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>>>>>>>> Check the FAQ: http://akka.io/faq/ >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user --- You received this message because you are subscribed to the Google Groups "Akka User List" group. To unsubscribe from this group and stop receiving emails from it, send an email to akka-user+unsubscr...@googlegroups.com. To post to this group, send email to akka-user@googlegroups.com. Visit this group at http://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/groups/opt_out.