UJUG 2013 Architecture Roundup with Lucid Software

Preview:

DESCRIPTION

Lucid Software's lessons learned about architecture at the Utah Java User Group. 15 minute presentation by Derrick Isaacson, Director of Engineering, on sharding, session state, typed JavaScript, and ORMs.

Citation preview

UJUG Architecture Roundup

Derrick Isaacson, Director of Engineering

Architectural History

Paid

Free

TIE

North

Am

erica

Euro

peAsi

a

Oce

ania

Sout

h Am

erica

Africa

Unkno

wn

0

3000

60009000

Hours in editor by region

Client State

HMACpublic static String calculateRFC2104HMAC(String

data, String key)

{

SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), “HmacSHA1”);

Mac mac = Mac.getInstance(“HmacSHA1”);

mac.init(signingKey);

byte[] rawHmac = mac.doFinal(data.getBytes());

return Encoding.EncodeBase64(rawHmac);

}

Stateless

Don’t DDOS Yourself

• Use RESTful principles for correct status codes (5xx vs 4xx) so clients know when to rety.• Use correct headers:• Retry-After: 120

Actors

Typed (JavaScript) Code Pays Off

• Static type checking• Unused value detection• Dead code removal• Syntax validation• Style warnings• JS pitfalls detection

Beware ORMs

Anorm

What does a framework really need?• Paremeterized queries• Simpler API than JDBC• Control over your queries

is Not an Object Relational Mapper

Beware of Coddling Frameworks

Q & A

http://www.lucidchart.com/jobs

Recommended