I can't believe I'm keeping this thread going, but... On Sun, Jul 22, 2012 at 10:15 AM, Drake <[email protected]> wrote: > And your >> absurd proposal that all 326 of my url endpoints should be separate >> applications... Just. Wow. > > If you had actually read what I posted I said that you should group by task > type, and used class so that you had many smaller apps, that were optimized > for like tasks and minimizing classes.
Your exact words were "Each of what you call and End point should be a micro app. A single purpose App that handles one type of request." But let's move on. I was a tech lead in EA's online platform group - hundreds of services among thousands of machines - so don't lecture me about service oriented architectures. And that's not even close to the most impressive thing on my resume. Now, can we put our dicks back in our pants? There is a proper scale for breaking down a monolithic application into separately deployed modules, but this isn't it. In real-world business apps (the kind that - unlike your CDN - represent 90% of GAE users), transactional boundaries place limits on how you can decompose an application since you can't (without getting *really* crazy) run a transaction across instances. I'm glad that you've figured out how to tightly optimize serving static content through GAE. I'm sure your CDN code is lovely and well suited to its painfully narrow task. But you're trying to generalize a hack - "write at the lowest API level all the time" - to projects that are simply too complicated for that kind of hack. With broader experience, you would understand this. > If you want it to be constructive, post your code and I'll whack 30% off > your start time just to get you to stop griping about how it is not possible > to speed up start times because Google sucks. Cute. I'll make you an equally pointless offer: If you want to fly out to San Francisco, I'll show you the code for a modern business application and you will see for yourself why your optimization strategy is farcical. The difference between your pointless offer and my pointless offer is that if you actually took me up on it, I could deliver. However, if you want to play a game, try optimizing this demo app: http://www.motomapia.com/ The code is linked from the header. Typical instance startup time is 10-15s. Here's the rules of the game: * The @Path annotations must keep working * The @Transact(TxnType.REQUIRED) annotation must keep working * Datastore access must be through typed POJOs. Let me predict the response: "Too many frameworks! Use low-level API! Use web.xml! Manipulate transactions by hand!" All of that works in a toy demo but not in an app with hundreds of endpoints, dozens of polymorphic entity classes, and complicated transactional logic. Essentially, your optimization strategy is to write code in a way that does not scale to the complexity of a modern business application. Pure fail. Jeff -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
