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.
Interview with Adrian Colyer on Apr 09, 2007 Length 00:08:20
Improve Java Garbage Collection, Runtime Execution, and JVM visibility with Zing
Using Drools? See what you're missing! Get the Power of Drools with the Assurance of Red Hat
Monitor your Production Java App - includes JMX! Low Overhead - Free download
Great interview, and it's good to hear that there is more discussion around domain aspects. We've been using AOP and domain aspects since 2002, and have nothing but good experiences with it. Also, I must say that doing the opposite of what Adrian talks about, i.e. plunging into using AOP all-out instead of just using the "simple" parts, allowed us to exploit the advantages of it more fully, and in a less schizofrenic way. So there are certainly benefits to going "all in". But, at the same time it *IS* important to consider if a team have the skillz and experience needed to do so. With great advantages comes great risk, so it's (as usual) a tradeoff.
Rickard, Adrian mentioned business policies that apply in a number of places as an example use of Aspects for domain logic. What were some of yours?
When was this interview carried out? Most of the things in the last paragraph seem dated.
It was about a year ago, we tried to edit out anything dated, sorry if we missed anything.
The majority of our interceptor aspects apply only to one "place" (=mixin), BUT the vast majority if mixins are reused in a number of places, which means that the interceptor aspects are then consequently ALSO reused in many objects. E.g. if I add a child to a container there's an interceptor which ensures that the child->container is properly set. The interceptor applies to only one place (=the Container.addChild method), but the Container mixin applies to some twenty places in our domain model. This allows for highly focused and specific aspects which are still highly reusable, when combined with mixins.
So the interceptors are usually very specific in terms of methods that they apply to, but those methods/mixins can then be reused quite a lot in a number of different classes.
The way I think about aspects changed quite a bit when I started using mixins in our domain model extensively, since as in the above case it allows the interceptor aspects to be very specific to a particular mixin, but the mixins are usually highly reusable.
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.
5 comments
Watch Thread Reply