Our great sponsors
-
We follow the interactor pattern to store our business logic. So we mainly have skinny controllers, skinny models and then interactors. We also don't use ActiveRecord callbacks very much, we primarily use Wisper to broadcast events and then various domains can subscribe to the events they care about and respond accordingly.
-
We don't do too many things The Rails Way™ anymore. We tend to use the Interactor pattern using the aptly named gem. We use Wisper to broadcast events instead of using AR callbacks. We use Pusher for websockets because we broadcast millions of events per day and ActionCable just can't keep up.
-
Scout APM
Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.
-
This is mainly addressed in the last thing but we cache pretty heavily on our REST APIs and for GraphQL we use the graphql-batch gem pretty heavily. Those two things can go a long way. Make sure you're using an APM like Scout to keep an eye on things and then debug the outliers.