Sinatra Technology Options

The key bits of technology and some important players in each space

Choosing Software Engineering and technologies

  • Everything is constantly changing
  • Improved sometimes, made worse sometimes
  • New alternatives are invented
  • Totally new approaches are invented
  • Key responsibility is to know the options
  • Understand the tradeoffs
  • Decide what is worth learning and what is just cargo culting
  • Learn how to critically analyze your needs and the tradeoffs.

Technology Grid

SubjectDefaultAlternativesComments
ORMActiveRecordSequel, MongoidOf the others, I think Sequel is the most interesting alternative. If you are using NoSQL then you would be required to use a different ORM.
DatabasePostgresAmazon DynamoDB, MongoDB, Relational databases are the obvious choice. But could you get better performance, scalability or programmer happiness from other choices?
Cloud DeploymentHerokuDigital Ocean, AWS BeanStalkHeroku is the easiest to use. But Beanstalk is a little more large scale for the same price, and Digital Ocean is somewhere in the middle
Continuous Testing and DeploymentHerokuCodeShip, Github ActionsThere are lots of choices and many of them are pretty similar. The one new entrant that is pretty interesting is Github actions
Logging and Error TrackingRails Built InDataDog, Rollbar, Lograge, Sentry, AirbrakeComplex systems rely heavily on log and error tracking, for troubleshooting, notification, and billing.
Background ProcessingSideKiqSuckerPunch, Delayed::JobThere are options and tradeoffs. Here's a good article: https://scoutapp.com/blog/which-ruby-background-job-framework-is-right-for-you also: https://blog.appsignal.com/2022/02/15/delayed-job-vs-sidekiq-which-is-better.html?utm_source=ruby-magic&utm_medium=email&utm_campaign=rss-email&utm_content=button
CachingRedisCachedDThese are the two main ones
UIHTMLBootstream, React, ElmI recommend keeping it simple with just HTML plus some css library like Bootstrap or others
Web FrameworkSinatraPadrino, Hanami, Rails, many moreGood article: https://naturaily.com/blog/8-frameworks-ruby-not-rails