HTTP-KIT • AWS C1-Medium! • 313,852 Concurrent Users! • 7GB Ram! • 4756.79 Requests Per Second • 8 Cores
Make a payment on a bill! - Not necessarily a full payment POST /bills/:bill-id/payments Session: user-id Post Data: amount 1. GET credit card token for user! 1.1. POST request to payment gateway! 2. GET how much was left to be payed If payment is success: display amount remaining on bill! If payment fails: display error
CQRS! • Want fast reads. Reduce the • Would be great to have an number of queries.! event stream to re-calculate current state. • Don't want to have to update write code every time we add a new reader.! • Don't want to have to update reader every time there's a new writer.!
Service A Rabbit MQ Write Publish ! Triggers Notify ! Cassandra Read Write Service B Index Maintainer
CASSANDRA TRIGGERS • Can just throw the Clojure • One class per trigger per jar in there! table! • Everything is byte buffers! • Bizarre key names (format changes depending on value • Need to know the type of type) fields out of band!
IOS Web Android User Provider Mail Service Service Service Cassandra
Authentication Multi Factor Authentication User Service Authorisation User Profile Password Reset