Enhancing Evite.com with GWT and Grails
On my LinkedIn Profile, it says my current gig is a SOFEA consultant at a stealth-mode startup.
SOFEA Consultant, Stealth Mode Startup, Los Angeles, CA. December 2008 -- Present.
OK, I lied. It's not a startup, it's a well-known company that helps you plan parties. For the last 5+ months, my UI team from LinkedIn has been working with Evite.com to enhance portions of their site with a SOFEA architecture.
In January, we started evaluating Ajax Frameworks and came to the conclusion that GWT was right for us. After we chose the UI framework, other team members chose Grails and memcached to develop scalable RESTful services. The architecture we implemented involves using GWT's RequestBuilder to talk to Grails' services, which cache almost all their JSON output in memcached.
To see an example of a feature we developed with GWT, see Evite's Design Gallery. I personally worked on this feature and very much enjoyed becoming a GWT aficionado in the process. GWT's zero-turnaround feature made doing pure client-side work a lot of fun. It's definitely something I'd like to continuing doing at my next gig.
Everyone from Evite is very happy with what we've been able to do with GWT and Grails. We have a stateless architecture and are quickly able to develop both client-side and server-side features. We've learned to scale the client by using out-of-the-box GWT components. We've scaled Grails by caching as much as possible. We serve up Ads and Analytics using the same JavaScript mechanisms that traditional server-side frameworks use.
At the end of this month, my gig with Evite comes to an end. I'll be spending a few weeks at my family's cabin in Montana and then it's on to the next big thing. What's the next big thing? I'm not sure yet, hence the reason for writing this. If you're looking to develop a GWT application, introduce a SOFEA architecture at your company, or simply adopt some open source frameworks, I'd love to help out. Drop me a line and let's start a conversation.
Posted by Gabriel Kastenbaum on June 15, 2009 at 02:05 PM MDT #
Posted by Alonso on June 15, 2009 at 02:17 PM MDT #
Posted by Les Stroud on June 15, 2009 at 06:07 PM MDT #
Posted by Matt Raible on June 15, 2009 at 07:04 PM MDT #
I'd be interested to hear some details about how exactly you integrated memcached with Grails. I'm currently using memcached as the Hibernate cache using this plugin:
http://code.google.com/p/hibernate-memcached/wiki/ConfiguringGrails
Now, I'm thinking about how to use memcached within my Grails app for caching other objects (e.g. controller response, views). Currently, I'm leaning towards using this library:
http://code.google.com/p/simple-spring-memcached/
Any other suggestions?
Posted by Donal on June 15, 2009 at 11:05 PM MDT #
Posted by Roshan Shrestha on June 16, 2009 at 02:33 AM MDT #
Posted by Sakuraba on June 16, 2009 at 07:38 AM MDT #
@Donal - we integrated memcached with Grails using spymemcached. Beyond that, most of the integration was done manually. We'd love to move to spring-spring-memcached (SSM) in the future. However, SSM expects Java objects (not Grails domain objects) and we haven't figured out how to serialize Grails domain objects.
@Roshan - the short answer is no. There's a separate division at Evite that develops mobile applications. Too bad, I don't think it'd be too hard to make a GWT application iPhone-friendly.
@Sakuraba - I'll try to post an example in the near future.
Posted by Matt Raible on June 17, 2009 at 07:04 PM MDT #
Posted by Matt Raible on June 24, 2009 at 04:12 PM MDT #