I'm imaging partitioning the app into a few modules in order to favour 
agile / lean development & deployment. So when I work on the admin part the 
user app is completely independent.

The question, as you suggest, is whether I put these shared capabilities 
into shared libraries or a shared modules ("services"). The former would 
eliminate the need for inter-module communication but increases the 
deployment overhead: When a library changes all services need to be updated 
and re-deployed. By isolating capabilities into services I would always 
only have to update and deploy that one service (even if the interface adds 
methods - yet not when I'd remove one) but the required communication 
overhead worries me.

Generally, I was wondering about the feasibility of urlfetch for internal 
calls because I read somewhere that you can only have so many parallel 
calls. And I wouldn't want to have a splendid agile, service-oriented 
architecture but realise that some calls just don't succeed when there are 
too many (or are too slow/flaky).

PS: I heard a lot about the split-up approach from Sam Newman's Designing 
for Rapid Release <https://vimeo.com/47515968>.

Regards
Stephan


On Wednesday, November 6, 2013 7:22:42 AM UTC+1, Vinny P wrote:
>
> On Tue, Nov 5, 2013 at 3:34 AM, stephanos <[email protected]<javascript:>
> > wrote:
>
>> I want to split my big Java application into multiple smaller modules. 
>> They will not be 100% independent so they will need to communicate with 
>> another.
>>
>> I'm wondering...
>>
>>    - what communication protocol to use?
>>    - will latency be low enough? are there spikes?
>>
>>
> What kind of latency numbers are you looking for? Do you need real-time 
> communications, or can the communication be done async/with a bit of lag?
>
> If you need realtime communication with a different module, you can design 
> a simple API and urlfetch to that. XMPP can also be used for fast 
> communication. If you can tolerate a delay or do the work async, you can 
> communicate between different modules using task queues.
>
> Depending on your application's architecture, you can also try refactoring 
> your application so shared services are consolidated into shared libraries.
>
> -----------------
> -Vinny P
> Technology & Media Advisor
> Chicago, IL
>
> App Engine Code Samples: http://www.learntogoogleit.com
>  

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-appengine.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to