InfoQ

Interview

Orbitz.com Architecture with Brian Zimmer

Interview with Brian Zimmer by Scott Delap on May 22, 2008 06:54 AM

Community
Architecture
Topics
Dynamic Languages ,
Enterprise Architecture
Tags
JRuby ,
Jython ,
Java EE ,
QCon San Francisco 2007
Summary
In this interview taken during QCon 2007, Brian Zimmer talks about the architectural challenges he has faced working on Orbitz.com, one of America's most popular online travel booking sites. He touches the subject of dynamic languages and their importance in augmenting Java in order to become a better and richer platform.

Bio
Brian Zimmer is the lead of the Architecture and Infrastructure group at Orbitz Worldwide. Brian is responsible for directing the development of the company's distributed infrastructure, reviewing technical designs for adherence to architectural principles and overseeing the creation of domain models and service APIs.
This is Scott Delap here at QCon, San Francisco and today I have Bryan Zimmer, senior architect at Orbitz. Brian can you tell us a little bit about yourself and Orbitz?
Ok. You want to talk about that transition, about why the business moved that direction and then what were the technical challenges to associate with that?
Let's start with some of the bigger things. In the high level view, what is the architecture?
In terms of solving those problems you mentioned concurrency, so I mean it is just a matter of custom objects to manage that or in the Java libraries that you found assisted in the issues...?
What about talking about concurrency and you had to go out to different providers and things, what about in terms of asynchronous messaging or enterprise buses or things of that nature?
You mentioned things like internationalization, I mean the standard answer that is use these property files and resource bundles, but I am assuming it's a little more complex possibly in your guys cases.
I guess moving along with re-architecting in the platform, I am assuming there were probably a number of concerns and principles that you wanted to work into the new design. What were some of those and then we'll come back and I guess dive into more detail on how you solve some of those issues.
Drilling into that in terms of things like fail over latency, particularly tools that you've been able to use to help you with that, or is it just problems kind of unique to our business because of our concerns based on it so we have to architect something that kind of lines up with that?
How much of the traditional JEE stack are you able to take advantage of giving the size of the problems you are solving?
Along those lines you mentioned not using distributed transactions, one of the other things that happens besides just how much the JEE stack it uses, there is a whole list of norms that you as architects and developers were told to do this and do that, but when you get to larger applications you start breaking rules. Are there any other cases like that, that those types of things in terms of synchronization or other things that are applicable, so you have to go a different direction?
Another thing with an application like Orbitz, there's variety different states going on of get these results, get the next set of results, aggregate them together, prepare for pricing. What do you do for the state problem in terms of volume versus keeping state per one simple transaction, one single person requesting something?
Changing gears a little bit you were also the lead of the Jython for a little over a year. What do you think of this kind of whole resurgence of Java as a platform with languages such as JRuby and Groovy and even a kind of resurgence in Jython, a little bit in the last year?
Is there anything to make Java the viable platform outside of startup time? I know there has been some talks about some invoke dynamic ... and some things like that. You want to comment on that or anything else that you think, I mean for being a Jython lead I am sure you know the whole list of thick walls that you used to run into. What means to be there?
You've worked with Orbitz a while, so what do you like about the architecture that's a really good way that we've done things and what do you really dislike about it, you'd like to redo as soon as possible?
What about anything you don't like, may not be Orbitz, maybe Java is causing you a problem with something?
show all  show all

2 comments

Reply

Awful transcript by Alexis Le-Quoc Posted May 27, 2008 9:53 PM
Interesting interview by Randy Shoup Posted May 28, 2008 8:06 PM
  1. Back to top

    Awful transcript

    May 27, 2008 9:53 PM by Alexis Le-Quoc

    When they do need a manage state the traditional approach for us is to push that out to cash and let the cash manage it


    I'm sure the problem can be solved with money but using a cache will be more helpful to manage state.

  2. Back to top

    Interesting interview

    May 28, 2008 8:06 PM by Randy Shoup

    Hi, Brian --



    You touch on some really interesting topics. Carefully managing your interactions with hundreds or thousands of independent and unreliable supplier systems must be a real challenge. And as you and I have discussed, marrying that with a complex event streaming approach to monitoring was very clever and powerful. Great ideas in there!



    Take care,

    -- Randy

Exclusive Content

Diary of a Fence Sitting SOA Geek

In this presentation, Mark Little explains the history of SOAP/WSDL/WS-*-based web services and RESTful HTTP and highlights how the two approaches might converge into a single solution.

Flex for XML and JSON

Platforms need interoperability. In this article Flex interoperability with JSON and XML is explored including direct mapping to chart and grid components.

Measuring Agile in the Enterprise: 5 Success Factors for Large-Scale Agile Adoption

Michael Mah analyzes the development process in 5 companies: 2 Agile (one of them BMC) and 3 classic. He presents the factors which contributed to the success of BMC's Agile adoption.

Tom Preston-Werner on Powerset, GitHub, Ruby and Erlang

In this interview filmed at RubyFringe 2008, Tom Preston-Werner talks about how both Powerset and GitHub use Ruby and Erlang, as well as tools like Fuzed, god, and more.

David Laribee on Alt.NET and its Mission

David Laribee discusses the purpose of ALT.NET, its mission and future.

Discover RailsKits and Stop Writing Redundant Code

Ruby on Rails has become a popular Ruby framework for creating web applications in recent years. An aspect of creating a web application is the need to repeatedly create the same base functionality.

A Formal Performance Tuning Methodology: Wait-Based Tuning

Steven Haines talks about tackling web application performance tuning by proposing a method called wait-based tuning.

Shaw and Fowler About Forging a New Alliance

Shaw and Fowler talk about the need for a new relationship between the business department and the IT department. Studies have shown that projects mostly fail due to miscommunication between the two.