> stdout Tradier Developer Blog

Hello World

Posted on 08 May 2014 by Steve Agalloco | Announcement

Welcome to the Tradier Developer blog. We work with a lot of great technology here at Tradier and we want to share our experiences as we build out our API and it’s supporting systems.

Infrastructure

It all starts with Amazon Web Services. We run our entire platform in the cloud (seriously, our only physical server is a mac mini in the closet of our office). AWS allows us to scale up and down with ease and provides us with a good automation toolkit for managing everything from servers, databases, load balancers, DNS among other things. We use Chef to provision our servers and AMIs.

Key Technologies

Apigee is a key technology partner of ours providing us with advanced management tools, analytics and reporting on our API. Our API platform is primarily comprised of a mixture of Java and Ruby-based endpoints. We use Ruby APIs using the Sinatra framework for some of our simpler APIs where using Java would have been akin to using a sledgehammer to drive in a nail. Where performance is most critical, we rely on Java-based solutions.

Right now, we use a combination of both JBoss and Jetty. We are big fans of the Dropwizard framework and are considering it as our go-to for future development in this area. Our streaming APIs are typically built off of queues and direct feeds from backend data providers.

We use Node.js in combination with ZeroMQ to deliver fast streaming APIs. Our websites are Ruby-on-Rails based applications and we use Ember.js as our front-end framework of choice.

Philosophies

  1. Keep it Simple - It’s no secret that highly available distributed systems are difficult to scale and coordinate. We take a simple approach to most of our apps. Loose coupling is far superior to tightly bound and integrated services. In addition, most of our services are self healing. By taking complexity out of the equation, we make it easier on ourselves when it comes to troubleshooting

  2. Shorten the feedback loop - While some of our projects are longer running, we make a concerted effort to get things into production quickly. Once an app is in production, we use a combination of NewRelic and Apigee’s Edge Analytics Services to monitor and measure closely, and when needed iterate quickly.

  3. Use the right tool for the job - This goes hand in hand with our philosophy on shortening the feedback loop. Being selective about the technologies we use allows us to constantly drive towards optimal solutions. We also like to try new things to give us insight on where we should be heading.

  4. Test…a lot - We place a big emphasis on testing as a natural part of the development lifecycle. We rely heavily on Travis to be our watchdog. We had the pleasure of talking to Florian Motlik at CodeShip and have been evaluating a potential move in their direction.

Stay tuned

We care deeply about our platform; and in turn, the applications and platform providers who use it to create innovative trading experiences for our customers. We look forward to sharing more about our platform and solutions with you.

comments powered by Disqus
Tradier Inc.
  • 11016 Rushmore Drive, Suite 350
  • Charlotte, NC 28277
  • Phone: 980.272.3670
  • Email: hello@tradier.com