New-age Transactional Systems - Not Your Grandpa's OLTP
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Abel Avram on May 14, 2010
The Google Wave Robots API v2 is not backward compatible with version 1 and has been enhanced with new features like: Active API, Context, Filtering, Error Reporting, Proxying-For. Beside a Java and a Python client library useful to create robots, developers can build their own libraries based on the Robot Wire Protocol.
A robot is an automated wave participant. A robot runs as a server side application, being able to create waves and interact with them, for example by adding/removing participants, creating/modifying blips (the smallest unit of conversation exchanged in a wave), interacting with the outside world on behalf of waves. Google has upgraded the robots API to Robots API v2 which is not backward compatible with v1. All developers are invited to migrate their code to use the new API by June 30, 2010 when the old version will be retired.
Some of the new features introduced in Robots API v2 are:
- Active API: In v2, robots can now push information into waves (without having to wait to respond to a user action). This replaces the need for our deprecated cron API, as now you can update a wave when the weather changes or the stock price falls below some threshold. You can learn more in the Active API docs.
- Context: Robots can now more precisely specify how much information they want to get back from a particular event. If only the contents of the affected blip needs updating and you want to reduce your robot's bandwidth, then you can specify the new 'SELF' context. On the flip side, if you do need all the information in the wavelet, you can specify the new 'ALL' context. You can learn more in the Context docs.
- Filtering: In a similar way, with this new API, the robot can specify what events it needs to respond to, conserving valuable bandwidth -- and ignore all those that don't apply. You can learn more in the Filtering Events docs.
- Error reporting: Robots are now able to register to receive errors about failed operations, such as insertion on non-existent ranges. You can learn more in the Error Reporting docs.
- Proxying-For: Robots can now convey to Google Wave that their actions are actually on behalf of a different user, via the proxying-For field. For robots like the Buggy sample, which connects with the Google Code issue tracker, this means that the wave can be updated with attribution to users on non-wave systems. You can learn more in the Proxying-For docs.
Some of the newest features recently announced for Robots API are:
A robot communicates with a wave via the Robot Wire Protocol which is an event based means of communication between waves and robots. A robot registers itself to the waves it is interested in and it is informed of changes and updates through events contained in JSON Message Bundles. Upon receiving such an event the robot may issue an operation to the wave either through JSON-RPC or using the Robots API.
Currently there is a Java Client Library and a Python Client Library to help developers create robots using the Robots Wire Protocol, but the protocol lets developers create new libraries using the language the want.
Using Drools? See what you're missing! Get the Power of Drools with the Assurance of Red Hat
SCM best practices for multiple processes, releases & distributed teams
In today’s hyper-competitive world, later may be too late to adopt Agile development and this Roadmap for Success will help you get started. Download "Agile Development: A Manager's Roadmap for Success" now!
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
No comments
Watch Thread Reply