Resources
Every apps can have access to the same add-ons, but we’ll focus on the ones with have for the production application.

Professional Dynos
This is the main resource of the app, and consists of:
Web: the main thread, similar to your Rails Server in your terminal
Worker: the async thread, similar to your Sidekiq in your terminal
Resources
Advanced Scheduler
This were all of CRON is handled. Here is how ChatGPT would define a CRON:
CRON is a time-based job scheduler in Unix-like operating systems that allows users to schedule automated tasks or scripts to run at specific intervals or times.
Basically, if you need to run a piece of code in a recurring or scheduled way, this is a CRON.
Here is the list of our active CRON in production:
Regional email (every Tuesday at 10am)
Monthly suggestion (every 1st Thursday of the month at 10am)
Job offer expiration (every 4 hours)
Credit expiration (every 4 hours)
Sitemap refresh (every Monday at 6am)
Weekly metrics (every Friday at 5pm)
Weekly applications reporting (every Friday at 4pm)
In Emails Run (every 6 hours)
Out of Emails Run (every 6 hours)
Bonsai Elasticsearch
Config, logs and metrics for out Elasticsearch application.
Heroku Data for Redis
Metrics and settings for our Redis datastore (mainly used to queue Sidekiq Jobs).
Want to know more about Sidekiq, Redis and how they work? Have a look at this great article:
Heroku Postgres
Metrics, credentials, logs about our database. In the durability tab, you can find every back-up ever made (the last 8 days). A back-up is made every day, so if you ever need to use one, you’ll (only) lose maximum one day of data.

If you download a back-up, this will give you a .dump file containing the whole backed-up DB. To know how to use it, you can refer to this documentation:
Papertrail
This one is really useful if you need to investigate a bug or if you need to check for something in the logs. Basically it retains ALL logs form the last 2 weeks, and you can even download archives for timeframes longer than that.

Scout APM
APM stands for Application Performance Monitoring. This newly added add-on is great to have a view of the performance or your HTTP request and the performance of your workers.
If you notice a simple HTTP call takes 2000ms, that’s probably too long for a simple request and it might benefits from an optimization. Remember that this example is extremely contextual and, sometimes, 2000ms for a request is totally acceptable.

In the screenshot above, we’re looking at the endpoint: JobApplicationController#create
So it’s basically the request made when a candidate apply to a job or a company. We can see that its mean response time is 813.6ms, which is considered OK.
And that’s a wrap for this section 🎬 Feel free to complete it!
Last updated