SYNCROMATICS
USING
AKKA.NET
AUGUST 12, 2015
WHO AM I?
Josh Benjamin
Senior Software Engineer
Benjamin@Syncromatics.com
SYNCROMATICS
Provides an integrated hardware and software platform also
called "connected bus" which allows logistics planners deep
analytics for improving routes and services, while also
allowing the riding public know where the bus is, the current
number of riders, and estimated arrival time. Syncromatics is
a California Clean Tech winning SaaS company.
TECH STACK
•C# / F# / .Net
•MS SQL Server
•Akka.Net
•Rabbit MQ
•Nhibernate
•Redis
•ElasticSearch
•Nancy
•Angular
•Ansible
LEGACY SYSTEM
Written in mid 2000s for tracking vehicles.
Server 1
Cust 1
Cust 2
Server 2
Cust 3
Server 3
Cust 4
Cust 5
What problem did we have? Or why did we switch?
• High avail, lack thereof – inefficient sharing poor unreliable
• Concurrency – processing data packets in order, per vehicle
• Testability – unit tests
• Maintainability – readability
AKKA.NET SOLUTION
High Availability – Consistent Hashing Router will rebalance
when a node leaves/fails.
Concurrency – Actors are inherently thread safe. We don’t
worry about locks!
Testable – Actors are small, have one job, and only
communicate via messages.
Maintainable – Small actors are easy to grok.
Took 85% less code to do the same job
Code is just focus on the problem
MONITORING AND
DEPLOYMENT
We use statsd, graphite, and grafana to monitor our akka.net
cluster activity and performance.
We deploy our akka.net application packed as a topshelf
service with ansible.
In the future we are looking at docker and ubuntu for hosting.
QUESTIONS?
WE ARE HIRING!
DEVELOPMENT.HIRING@SYNCROMATICS.COM

Syncromatics Akka.NET Case Study

  • 1.
  • 2.
    WHO AM I? JoshBenjamin Senior Software Engineer Benjamin@Syncromatics.com
  • 3.
    SYNCROMATICS Provides an integratedhardware and software platform also called "connected bus" which allows logistics planners deep analytics for improving routes and services, while also allowing the riding public know where the bus is, the current number of riders, and estimated arrival time. Syncromatics is a California Clean Tech winning SaaS company.
  • 4.
    TECH STACK •C# /F# / .Net •MS SQL Server •Akka.Net •Rabbit MQ •Nhibernate •Redis •ElasticSearch •Nancy •Angular •Ansible
  • 5.
    LEGACY SYSTEM Written inmid 2000s for tracking vehicles. Server 1 Cust 1 Cust 2 Server 2 Cust 3 Server 3 Cust 4 Cust 5 What problem did we have? Or why did we switch? • High avail, lack thereof – inefficient sharing poor unreliable • Concurrency – processing data packets in order, per vehicle • Testability – unit tests • Maintainability – readability
  • 6.
    AKKA.NET SOLUTION High Availability– Consistent Hashing Router will rebalance when a node leaves/fails. Concurrency – Actors are inherently thread safe. We don’t worry about locks! Testable – Actors are small, have one job, and only communicate via messages. Maintainable – Small actors are easy to grok. Took 85% less code to do the same job Code is just focus on the problem
  • 8.
    MONITORING AND DEPLOYMENT We usestatsd, graphite, and grafana to monitor our akka.net cluster activity and performance. We deploy our akka.net application packed as a topshelf service with ansible. In the future we are looking at docker and ubuntu for hosting.
  • 10.