Jax ArcSig Jan 2015

Current Enterprise Apps


  • Monolithic
  • Persistent Data Store (SQL, Mongo, Redis)
  • Scalable through web farm
  • Using VMs
  • Load balanced

Monolithic apps

  • Often has a single executable
  • Any changes require redeploying everything
  • Executes all domain logic

Martin Fowler


Fred George

Characteristics of Micro Services

  • Can have dozens of services, if not hundreds
  • Tend to be very small, maybe just 100 lines of code
  • They can have their own data, Encapsulate
  • Very lightweight
  • Take advantage system idle time
  • Deploy independently  

Pitfalls of Microservices

  • More apps to keep track of
  • Need monitoring
  • Should log events
  • Encourage the use of Async programming

Advantages of Microservices

  • Deployment simpler
  • Deploy independently
  • Rollback if problems
  • Easier to QA
  • Real Components


  • Don't have to use Node.js
  • Node single threaded
  • Event based Asynchronous IO
  • Great support small servers, WebSockets, Sockets,
    HTTP, HTTPS and other messaging
  • Clustering API


  • ServiceBus
  • Event based processing
  • Publish and Subscribe
  • 0MQ (ZeroMQ)
  • RabbitMQ
  • MSMQ/NServiceBus


Platforms used

  • Node.js/Seneca
  • Scala/Akka
  • Java/Jetty


Contact Me

  • David Fekke at gmail dot com
  • Twitter @davidfekke
  • Skype: davidfekke