Eventual Consistency taster

If I send an update to one system, then a minute later send that update to another system, my system will be inconsistent for that minute. Not quite. In my system there’s only one application that creates new data. Think of that application as the author of a novel. Updates to the novel are sent to other applications in the system. Applications receive updates at different times. Any application that’s reading page 42 of the novel has read the same 42 pages that any other application has or will read. When at page 42, that application’s understanding of the novel is consistent with all other applications’ understanding when they’re 42 pages into the novel. Eventual consistency does not mean inconsistent. With a commerce web site, is it acceptable for a confirmation email to be sent after we update the storefront? It depends on how long after. Eventually consistent systems can have applications receiving data milliseconds or hours apart. First I need to understand what an acceptable delay is for each system. Then, I can work out the resources necessary to meet that goal. For example, I might want the storefront to show a new order within 100 milliseconds, a confirmation email to be sent within 10 seconds, and the “monthly statement” application needs to know by the end of the month.

Read More

Duplicating data can save money

I have lots of records in my database. One application writes these records, many applications read these records. So I put them all in one database, and have all the applications access that database. Simple. But then I run into some problems.

Read More

Clean Code

The Clean Code Talks concentrating on writing testable code. In his talk, Unit Testing, Miško Hevery explains unit testing and makes a case for unit tests.

Read More

Parleys.com

Parleys.com publishes talks from software conferences. I like seeing high-quality slides alongside video of the speaker. Paryleys’ podcast is an audio only version of the talks you can watch on their site. Two of my favorite talks are:

Read More

Favorite JavaOne Videos

I’ve moved to Java. Here are my favorite sessions from JavaOne.

Videos require free registration. You only need to register once for all the videos.

Language:

Read More

Closures for Java

In his talk, Closures for Java, Neal Gafter provides a description of and an argument for closures in Java.

Read More

Faster sites mean more money

Google found that when pages took only half a second longer to appear, usage of their site dropped 25%. In her talk, Scaling Google for Every User at the Seattle Conference on Scalability, Marissa Mayer communicated these results. The explanation of the statistic starts around 9 minutes into the video and takes about 3 minutes.

Read More

Faster first byte

Send the headers and navigation to the client so they’ll see something while you’re waiting for something to finish. Perhaps the client won’t even finish downloading the headers when the render completes, you’ve gotten the first byte out faster.

Read More

Should you be persisting more state?

Lost state is state that has been destroyed, deleted, garbage collected or otherwise removed from storage not because of some domain specified reason. In the best case because of limited storage capabilities, but because the value of the state is underestimated.

Read More