Balancing Acts & NoSQL Support? Kev and Rijk's Game Table 1By Kevin Lewis on February 28, 2023
Welcome to the inaugural edition of our new monthly series where our lead maintainer Rijk and developer relations lead Kevin answer your questions about engineering and engineering culture at Directus.
In this post, we've summarized the most interesting parts of their conversation. However, if you have a bit of time, we highly recommend checking out the entire video - it's also available as a podcast, so you can listen to it on the go without needing to watch our faces.
You can submit questions on GitHub or anonymously using this form.
A lot of the work in the last month has been making things more stable and efficient across the board. On file storage - we've made file streaming way more efficient, and laid down work to release a new extension type for file storage adapters, which will be coming soon. To make your life easier when moving between Directus projects, we've added new schema migration endpoints, so you can update your data schemas between projects.
As engineers, we're always trying to find the right balance between different priorities. One area that's especially important for us is finding the right balance between our core product and our cloud offerings. To make sure we're moving both areas forward, we have a dedicated team working on our cloud services - and that means we never have to halt work on the core open source project.
To make sure we're focusing our efforts effectively, we use the 80/20 rule. That means that we focus 80% of our time on core features that will benefit the most users, and 20% on cloud-exclusive features.
This topic was pretty large and I've pulled out just a small part of it in this post. In the full video we cover topics like balancing fun features and less-enjoyable work, and balancing paid/sponsored issues with work that impacts more users.
Why Were Flows Built?
Flows were built because we saw a lot of people building custom hook extensions to do fairly straightforward but repetitive tasks - commonly "read data, transform it, and save" - and wanted to make it easier.
We know that with great power comes great responsibility, though. While Flows is super powerful and flexible, we also understand that you don't want to accidentally blow anything up with a misconfigured workflow. Back to the balancing act, we're also working to prevent you from breaking your project while retaining flexibility in the platform.
Where's the Release?
In the early days of Directus, there were no formal releases. However, as the platform grew and became more popular, the team realized the importance of providing regular releases to encourage users to upgrade and avoid regression issues. Initially, weekly releases were provided during the early days of Release Candidates, but the team noticed that people were not updating regularly enough.
As Directus has become a more mature and widely-used platform, the team has moved to a roughly monthly release schedule. While this may not be ideal for everyone, it's important to strike a balance between providing new features, fixing bugs, and ensuring that releases are stable and reliable. Sometimes, releases may be delayed due to a variety of factors, such as the inclusion of a particular feature or last-minute security patches.
While more common releases are possible, they carry a greater risk of adoption issues, so we work hard to ensure that our roughly-monthly releases are as reliable and stable as possible.
Supporting Other Database Types
Supporting a wide range of database types goes beyond just providing a database abstraction layer. We aim to showcase the unique strengths and features of each database, and we recognize that different databases require different approaches. As we explore the possibility of supporting NoSQL databases, we need to consider how this will coexist with our existing relational database support.
One of the challenges of supporting multiple database types is ensuring that our users have a consistent experience across all databases. We need to consider questions like what the API endpoints should look like and what the overall user experience will be like. We'll continue to explore the possibility of NoSQL support and keep you updated as we make progress.
Watch the Video
We'll run Kev & Rijk's Game Table monthly (rematch, anyone?), so please keep asking questions. You can submit questions on GitHub or anonymously using this form.