LiveCycle DS not ready for enterprise
I have been working on a large scale LiveCycle app for Userplane for the past few months and after several dealings directly with Adobe I have come to the conclusion that they missed the boat a little bit. While I do concur with their sentiments that it is indeed a great product with a ton of potential to do some truly unique things that are not out there yet, it is lacking just enough to cripple large scale implementations. Note that the limitations only apply when you are building onto of Coldfusion (great product synergy Adobe), the Java implementations work just fine.
The main crux is this, when it comes time to write new data to your managed data sets there is no effective way to save the data to your persistence tier and distribute the change without trigger a database call for every single user currently watching that data.
So a little scenario. You have a blog post with 10,000 concurrent users (yes a little insane I know but think, MacWorld and a live data managed blog) and one user posts a new comment in response, that will trigger 10,000 requests to requery the database to keep all the data in sync against that tier of your application. Now, take that situation and figure you have 10-12 comments a minute during a hot event like MacWorld. Take that scenario and ask your DBA how he feels about it and get back to me.
Ideally I see LCDS as a memory based short term database with a ton of out of the box functionality to speed up development of your real time app. With your persistence tier acting as nothing more then long term storage. Every change to your data gets saved into LCDS and the database in case your lcds servers go down or need to be rebooted. Sadly though it only sort of works this way. LCDS does maintain a copy of all the data that you are synchronizing across clients but it cannot be used when a new client connects only for distributing changes to already established clients. Adobe's official word back to me on this was that I should use query caching to limit the impact on my database. Two problems almost immediately present themselves one slightly more sinister then the other. Here I am spending a ton of money on licensing and adobe is asking me to double dip on my memory in order to limit the app from abusing my equal expensive Oracle cluster. Secondly and ultimately more troubling to me as a developer is that as soon as you start using LCDS your paradigm shifts a little, you have this awesome way to keep data in sync in real time and you start building features off of that premise. Last time I checked cacheing and real time were something of contrary concepts.





There are no comments for this entry.
[Add Comment]