Download - “Startup - it’s not just an IT project” - a random sampling of problems we’ve faced so far
Let’s get right into the following
● Couple of real-world examples● The abstract of software decisions
Click to edit Master title styleClick to edit Master title styleClick to edit Master title style
We need to make some decisions
Lets build the second application
● RubyOnRails ○ it fits the team○ matches what we’ve built before○ can we deliver fast
● Mongo○ Fits the features of the app
Lets build an app number xx
● NodeJS○ Fits the features ○ Performs well○ Encourages modular approaches
● DynamoDB○ Easy to scale○ Performance
Differences
● Old app is easy to kill and compicated to recover● New app is happily serving 2000 request/second
RabbitMq - A message queue
● Asynchronous communication● Event based communication● Persistent communication● Configurability for future● Proven track record● Clients for several languages
We chose Java over Ruby
● Can it fit on a cheapest amazon node● Can it provide fast response time● Is the ecosystem mature● Can we build apis in it● Is it evolving or revolutionary
● JVM - predictable, performant● Fundamentals - threads, objects, annotations● Tooling - IDE, javadoc, debugging, code generation● Lightweight enough (jetty)● Easy to abstract and extract libraries● Load tests are good enough
Click to edit Master title styleClick to edit Master title styleClick to edit Master title style
The evolution
Less building more maintaining
● Scaling● Maintaining infrastructure● Reworking previous features● Working around past mistakes
Click to edit Master title styleClick to edit Master title styleClick to edit Master title style
Conway’s law
Click to edit Master title styleClick to edit Master title styleClick to edit Master title style
Application continuum
Conclusion
● App evolves with the company● Rewriting and maintaining things takes time● Day to day environment influences applications
more than features