views:

79

answers:

3

http://en.wikipedia.org/wiki/Eureka_Streams
http://www.eurekastreams.org/

Eureka Streams uses a shared nothing architecture. It uses Memcached, Apache Maven, PostgreSQL and Hibernate. It uses Shindig for OpenSocial.

It makes use of Java Message Service (JMS), Java Persistence API (JPA), Lucene and Google Web Toolkit (GWT). It makes use of the Apache JServ Protocol (AJP), OAuth and Representational State Transfer (REST).

The tech sounds solid as hell, and it was developed by Lockheed Martin, but I just want to be sure before I commit to anything that this "enterprise" solution will function as fantastically as it sounds outside of a single-node intranet environment.

Thoughts?

Edit: As stated in the title, I'm specifically concerned with scalability and security.

+2  A: 

We built Eureka to scale to enterprise sized populations. We're currently deployed on about 40,000 employees and are soon going to have to scale to over 100,000. We've run performance tests with these points in mind.

To scale to something Facebook sized we'd probably have to start using something like Cassandra. That said, we've made the architecture robust enough to be able to support switching out data sources, so if this ever had to be done, it wouldn't be a rewrite.

Anthony Romano
Wow, thanks a lot for the amazing responses guys! Awesome to know that this thing will work as well in practice as it seems to in theory, so I guess it should be fine for me to go ahead and build my project with the Eureka backend. It's pretty unreal that I'm actually getting feedback from the actual developers behind this (Shawn Dahlen actually also started commenting in a thread I started on reddit last night).
+2  A: 

Feel free to post in the Google Groups discussion with any specific technical or other questions:

http://groups.google.com/group/eureka-streams-dev

To answer your question about scalability, we build our front-end data objects asynchronously and store them in the memcache distributed in-memory caching system. Search is distributed too in that each web node has a fully copy of the search engine. Every search is performed locally, and as you create more web front-ends, you're also scaling search.

+2  A: 

As for security we use Spring Security with a few default authentication mechanisms including a straight Forms auth provider, ldap and kerberos. You can create new authentication mechanisms pretty easily.

The OpenSocial container part of Eureka Streams has an OAuth implementation allowing OpenSocial applications to connect to external resources using OAuth 1.0a.

Steve