Skip to main content

Announcing Parthenon 2.1

· 4 min read
Iain Cambridge

Today is the release of Parthenon 2.1. It's a small release putting in some nice little features before big drive to build a powerful billing system starts. It has one key feature which is the Data Export Module. Which I think will be super useful to companies that deal with data exports from their system. Then there are a few minor features which will help will small little issues.

Data Export Module

If you've worked on a production system, you've almost certainly had to deal with data exports. Data export are maybe the most loved and sometimes most important feature within an application.

The issue with most data export systems is that it was built before they needed to scale. This results in the data export system being a large source of technical debt - while being easy enough to solve short term that it never really gets fixed. The pattern often is: you increase timeouts, you increase file sizes, etc; then you wait and someone complains about issues again so you up the limits are again and wait.

How Parthenon solves this is it includes the ability to have the data exported and provided in 3 different methods. Each is better for a different level of scale and users.

  • Direct Download - This is handled within the original request. The user is given a download straight away.
  • Background Download - This is handled using Symfony Messenger in the background and when ready the user can get a download.
  • Background Email - This is handled using Symfony Messenger in the background. Once the export is ready it's then emailed to the user.

For new small systems, the direct download works well. Once you need to start dealing with larger exports that take some time to process you would want to move to background processing. Within Parthenon, this would just mean changing a configuration value. For very long exports, it may not be wise or wanted for the user to wait for the export to be ready to download instead they would rather get an email. These three options allow you to scale your exports with ease and for you to switch between them by just using a configuration switch.

The data export supports CSV and Excel currently with more being added upon request.

The data exporter has built-in support in the admin system - Athena. But it can also be used directly if you wish to build more custom exports that aren't provided via Athena.

For more info, you can read the original GitHub development issue - #7 Data Exporter. Or you can read the docs on Export - Overview.

Other Minor Features

TemplateEmail

When working with larger systems it's often the case that you end up with your template ids for your emails hidden all across the system. This can make switching between Email Service Providers rather difficult. To help solve this, we created a TemplateEmail class that can be extended that provides the template id for the email that is being used. This allows you to isolate all the emails into a single namespace or find by usage to be able to find all the template ids that need to be changed.

For more info on this, you can read the original GitHub development issue - #15 TemplateEmail Class.

Togglable Email Confirmation

Within the user system for Parthenon, when a user signs up by default the system requires them to confirm their email before allowing them to sign in. This can be an annoyance for many users and could result in a lower activation rate for SaaS systems. So we added a configuration value to make it so that you can toggle if the user needs to confirm their email before signing in.

Changelog

You can read the full changelog here.