Directus Logo
  • The Data Engine and Studio
    • Connect
      Generate REST and GraphQL APIs instantly
    • Explore
      Browse and filter data in custom layouts
    • Editor
      Create and manage data in custom forms
    • Files
      Store and transform all your digital assets
    • Auth
      Protect your data with granular access control
    • Insights
      Visualize data within custom dashboards
    • Automate
      An automation builder for your data
    • Realtime
      Keep your data in sync with WebSockets
    Extend Your Toolkit
    Directus Marketplace

    Directus Marketplace

    Customize your data experience with extensions.

  • Build powerful apps and tools
    • Headless CMS
      Manage and deliver digital experience content
    • Backend-as-a-Service
      Simplify backend operations and scale
    • Product Management (PIM)
      A single source of truth for products
    • 100+ More Things To Build
      Looking for inspiration? Look no further
    • Startups
      Build fast, scale faster
    • Enterprise
      Secure, scalable composable architecture
    • Agencies
      Enhance your productivity and agency offerings
    • Government
      Dual-use platform for government applications
    Focus on the frontend
    Directus Cloud

    Directus Cloud

    Convenience and scalability without the stress.

  • Technical resources
    • Directus Docs
      Documentation on set-up and using Directus
    • API Reference
      Dynamic REST and GraphQL API docs
    • Tutorials and Guides
      Our developer blog for specific use cases
    • Quickstart Guide
      Get up and running quickly
    • Roadmap
      See what's on our product roadmap
    • Security
      Our commitment to security and compliance
    • GitHub
      Visit our repo on GitHub
    • Docker Hub
      Visit the official Directus Docker hub
    Open Source
    Visit our GitHub

    Visit our GitHub

    We're committed to the open source community.

  • Learning Center
    • Blog
      Read our latest articles and guides
    • Success Stories
      Case studies and success stories
    • Community
      Join our 10k member Discord community.
    • Events & Meetups
      See upcoming events and in-person meetups
    • About Us
      Learn more about Directus and the team
    • The Wall of Love
      See what others are saying about us
    • Contact
      Have a general inquiry or question for us?
    • Support
      Reach out to Directus support
    Watch Directus TV
    Directus TV
    Video

    Directus TV

    Go down the rabbit hole with hours of original video content from our team.

  • Pricing
Get DemoGet Started
GitHub logo25,762
Back
Community
Tuesday, February 28, 2023

Balancing Acts & NoSQL Support? Kev and Rijks Game Table 1

In the first of our monthly engineering community updates, we cover balancing acts, the inception of Flows, release cadences, and more.
Balancing Acts & NoSQL Support? Kev and Rijks Game Table 1

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.

What's New?

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.

Balancing Priorities

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.

Posted By

Kevin Lewis

Kevin Lewis

Director, Developer Relations

Share

LinkedIn LogoTwitter LogoReddit LogoDev.to Logo

Sign up for updates 🐇

Get insights, releases, and exciting news delivered directly to your inbox once a month. No spam - we promise. 🙂

  • Directus LogoDirectus Logo

    A composable data platform to build your Headless CMS, BaaS, and more. 

  • Solutions
    • Headless CMS
    • Backend-as-a-Service
    • Product Information
    • 100+ Things to Build
  • Resources
    • Documentation
    • Guides
    • Community
    • Release Notes
  • Support
    • Issue Tracker
    • Feature Requests
    • Community Chat
    • Cloud Dashboard
  • Organization
    • About
    • Careers
    • Brand Assets
    • Contact
©2024 Monospace Inc
  • Cloud Policies
  • License
  • Terms
  • Privacy
  • github
  • discord
  • youtube
  • docker
  • npm
  • x
  • mastodon
  • linkedin