sorentwo

sorentwo OP

Oban Core Team

Many months ago when I originally announced Oban I mentioned that a LiveView powered UI would be available for it soon. Well, the “soon” part wasn’t especially accurate, but I am pleased to announce that the Oban UI is now in private beta.

You can see a live version of the UI running at https://oban.dev/oban. The demo runs semi-constant stream of random jobs and doesn’t contain any actual personal information. Feel free to discard or delete jobs, it will just make more.

Now on to the “private” part.

Why is it private?

Oban itself has taken a ton of time to develop and support. I absolutely love the project, adore working on it, and am stunned by the positive response it has received. The UI requires even more work to get right and make into a truly useful tool for production applications. This is something I want to focus on and give proper attention—eventually I hope to sustain the project and by charging for a UI license.

Please note that Oban itself will always be entirely open source. There will never be an “enterprise” version with gated features.

Why is it a beta?

There are a few reasons:

  1. Installing it can be tricky. The package is largely stand alone, but it needs to be routed and configured from within a phoenix application. I expect that it will take some time to refine the installation steps and work out the kinks.
  2. The UI is missing some important features, has some known bugs and definitely needs polishing. That will take time, and I want to ensure that the initial users are willing to give meaningful and helpful feedback.
  3. There aren’t any proper support channels yet, it’s all a bit ad-hoc.

How does the UI integrate into my app?

The package is named oban_web and it is a published privately under the oban organization on hex.pm. The package is entirely self contained—it doesn’t hook into your asset pipeline at all. Just mount the live module in your router, pass some configuration, run some migrations and its up.

What’s on the roadmap?

As new features are added and bugs are fixed I’ll post about them here. Here are some of the bigger planned fixes/features currently:

  • Sidebar Accuracy
  • Pagination
  • Details View (with error details, unique information)
  • Queue Controls (scale up, down, pause from the UI)
  • Bulk Actions
  • Node Information
  • Live & Historic Metrics

How do I get into the beta?

Anybody wanting to join the beta now please go to https://oban.dev

The site has a little more info and a tiny little signup form for the beta.

Thank you to everybody that has expressed interest and offered support. If you have any questions or comments please leave them here. :yellow_heart:

First 10 of 18 Posts Switch mode

Eiji

Eiji

Challenge accepted! :077:

Array.from(document.querySelectorAll(".btn--destructive")).forEach((el) => el.click())

                                                    A few attempts later …


Well … good job! :smiley:

It’s why I love fault-tolerant so much!

sorentwo

sorentwo OP

Oban Core Team

Ha :smiley:!

Thanks for accepting the challenge. That was largely a test of LiveView more than anything else!

Those buttons could really use a confirmation…

sorentwo

sorentwo OP

Oban Core Team

One more thing about joining the beta: please include the email you would like to register with.

I made a few guesses for email requests but that didn’t work when I received DMs!

sorentwo

sorentwo OP

Oban Core Team

It is far too late to edit the main post, but to anybody wanting to join the beta now please go to https://oban.dev

The site has a little more info and a tiny little signup form for the beta.

cnck1387

cnck1387

This looks really nice and sure beats manually running queries.

But one question for you, and don’t take this is an attack or a challenge to defeat your ways to generate revenue, but have you thought about what would happen if someone makes an open source web UI on top of Oban?

I only bring that up because the project is so polished and it sounds like you want to go all in and work on this as much as possible and it would be great for you to be able to sustain that work by generating income but it would also suck if you put in all of that time and effort and then all of that comes crumbling down because someone else makes a web UI that’s not being charged for.

I know you’re not going to add paid features to Oban (which I think is great because that has always been something that bothered me a lot with Sidekiq). I’m mainly writing this because maybe it will spark some ideas in other ways you can generate income on top of the web UI. I know consulting is a big one.

Have you considered offering premium support? This would be beyond github issues. People could pay you X amount per month or year and that would allow them to get X amount of hours of your 1 on 1 time to help on something specific to their app. This basically becomes a safety net and you become the person to call if something goes wrong with their Oban set up. It’s sort of like consulting but it’s more of a retainer / insurance based form of it.

sorentwo

sorentwo OP

Oban Core Team

My family was traveling yesterday, sorry I didn’t get the chance to write back.

That doesn’t seem like an attack at all! This is certainly something I’ve thought about, and something that my wife brings up all of the time. It will always be a possibility (just like somebody replicating Oban is a possibility). There are a few plans to guard against this, some of which you touch on in your message.

That would certainly suck. I’m primarily relying on the fact that the amount of time to build a UI isn’t trivial—at least not one that has much functionality. The price of the license is still up in the air, but one of my selling points is that it costs less than you would pay an entry level dev for one week of work.

That will never stop a student or somebody who has free time from taking a stab at it though. Then again, there are plenty of gems out there that replicate part of Sidekiq Pro / Ent and that doesn’t seem to impact sales much.

That’s a great idea. Offering support is definitely something I’ve thought about. Bundling it as part of the license, or using it as a add on would be great.

Thanks for your comment. I really appreciate your time, your concern, and the thought you put into it.

sorentwo

sorentwo OP

Oban Core Team

Hey beta people! ObanWeb v0.6.2 is released today with a nuanced bug fix for users that are running queues on dedicated workers and no queues on their web nodes.

Changes

  • Add support for explicitly disabling stats rather than inferring based on queue configuration. This prevents issues in production environments where certain nodes (i.e. web) aren’t processing any queues, but the the UI is accessed.

    ObanWeb configuration now differs from Oban configuration and you’ll need to specify it separately. Specify the repo in config.exs:

    config :my_app, ObanWeb, repo: MyApp.Repo
    

    Disable the stats tracker in the test environment:

    config :my_app, ObanWeb, stats: false
    

    Then, be sure to use the ObanWeb config in your application supervisor:

    {ObanWeb, Application.get_env(:my_app, ObanWeb)}
    

Thanks to @bgentry for identifying the issue.

bgentry

bgentry

This fixed our issues, thanks @sorentwo! :pray:

sorentwo

sorentwo OP

Oban Core Team

Oban 0.7.0 is out today with a new and long overdue feature: a details view that shows job state, timing, full arguments, errors and some control buttons. It is now possible to kill, discard, start, rerun or delete a job from the details view. The jobs table is getting an update currently and all of those actions will be available there, without having to jump into details.

Screenshots are attached and the live demo is running as always.

Changes since 0.6.2 (including some bits that were part of 0.6.3):

Additions

  • Add detail modal for inspecting job arguments, errors and state timings.

Changes

  • Display duration or distance in words depending on job state. This clarifies timestamp information. Relative timestamps have an formatted absolute value as the “title” attribute as well.

  • Improved ordering for various job states. Many states were reversed, making the table view seem broken.


Completed:

Waiting for a retry after failure:

sorentwo

sorentwo OP

Oban Core Team

I neglected to announce the release of ObanWeb v1.0 here last week. It was rolled into the Oban v1.0 announcement and didn’t get the proper “release notes” treatment.

From the CHANGELOG:

The biggest change is that this version relies on Phoenix LiveView v0.6, which itself has breaking changes. Be sure to upgrade LiveView along with ObanWeb using this guide: https://hexdocs.pm/phoenix_live_view/installation.html

Changes for V1.0.0 and v1.0.1

Fixes

  • Display discarded_at time in detail timeline view
  • Prevent jitter when clearing stats cache

Changes

  • Upgrade to LiveView ~> 0.5 and test with 0.6.
  • Upgrade Oban and set dependency to ~> 1.0.0
  • Update stats and the queries that power stats to rely on more frequent
    refreshes and fewer database calls. The average refresh time dropped from
    ~310ms to ~180ms.

Where Next? Top

Trending in News & Updates Top

kip
I’m a bit excited to announce that Localize and friends are now at release 1.0. Even though it’s a 1.0 release, it stands on 8 years of w...
New
bartblast
After building Hologram and sharing updates across various places, I’ve realized there’s a lot happening that doesn’t always make it to t...
New
nseaSeb
Just published search_ash 0.5.0 (with search_core 0.4.0) on Hex. What’s new: synonyms You can now declare a synonym dictionary per lang...
New
mudasobwa
After years of struggling I made StreamData dependency optional. Finitomata.ExUnit got testing primitives for Persistence. Full back co...
New
bartblast
Hologram v0.11 is out! Two headline features this release. First, Elixir regexes now run in the browser. They were server-only until now,...
New
sullyMusty
ActiveMemory 0.8.0 — in-memory tables that speak Ecto ActiveMemory 0.8.0 is now on Hex. ActiveMemory is an in-memory store built on ETS ...
New
mudasobwa
MdexMultilineCells is an MDEx plugin enabling multi-line cells in Markdown tables with full inline/block Markdown rendering and automati...
New

Other Trending Topics Top

JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
ausimian
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New
juhalehtonen
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New

We're in Beta

About us Mission Statement