Going Indie--A Complete Guide to becoming an Independent Software Developer by Brian N Schrader

Going Indie--A Complete Guide to becoming an Independent Software Developer by Brian N Schrader

Author:Brian N Schrader [Schrader, Brian N]
Language: eng
Format: epub
Tags: Business & Personal Finance
ISBN: 9781636259581
Publisher: SkyRocket Software
Published: 2021-03-30T00:00:00+00:00


Auditing And Reporting

Now that your data is backed up and can be restored to a reporting database, you’ll need to consider what kind of reporting you’ll actually want to do and whether you have the data in your data model to answer the questions you might have about your business. For our purposes, ‘auditing’ simply means that our system is capturing and recording when and how things fail. Auditing can be done in a number of ways, and which way you choose depends on the design of the system and how much time you want to devote to complex reporting. Lots of developers don't implement any sort of auditing or reporting, and therefore they're completely oblivious to how their system is serving their users. Whether you opt for a full featured reporting solution, or you build something from scratch, isn't really relevant. As long as the auditing captures the information necessary to answer your questions, then it's working fine.

For our purposes, ‘reporting' simply means that you can use the data captured by your auditing systems to provide answers to your questions. Reporting can be done in a number of ways from manual ad-hoc queries, to admin summary pages, to implementing a full reporting solution.16 There's a number of great approaches to reporting, and what you choose will largely depend on how easily and quickly you want your questions answered.

Nine9s uses a slightly convoluted reporting system, but it’s one that I’ve used multiple times in a lot of my apps. Every few hours, Celery pushes an administrative reporting task onto the queue. This task runs in a separate queue and it has top priority so it’s not blocked by other long-running tasks. It checks the current length of all of the system queues and validates that everything is running properly, then if it detects an issue, it uses Django’s email module to send an alert email to Pushover which forwards the message as a push notification to my phone.17 Nine9s also runs a job at midnight UTC-time that counts the number of new users and new paying subscribers and sends me a similar notification. I have a similar system set up for Pine.blog and d20.photos. This system is pretty simple, but it works well and it’s easy to implement and tweak. I then occasionally test the system restore process manually to ensure my backups work properly.

Adventurer’s Codex, on the other hand, has a full suite of reporting dashboards, alerts, and charts that are powered by Redash. The reporting database, just like we discussed in the above, is fed from the latest system backups. This ensures that our backup/restore process works and allows us to perform ad-hoc reporting without burdening the production system. I highly recommend Redash, which can be easily self-hosted using Docker, if your application grows and gains a sizable user-base. I’ve been using Redash for years and it’s only gotten better and better.

Regardless of how you audit and perform reporting, it’s important to gain insights into how your business is doing.



Download



Copyright Disclaimer:
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.