Skip to content

Wrangling domain complexity with Foobara #47

@azimux

Description

@azimux

Contact Details

azimux@gmail.com

Type

In Person

Intended Audience

All levels

Duration

20-30 minutes, 45 minutes

Abstract

Hi! I would love to give a talk about my long journey and challenges with domain complexity, talk about/demo a framework called Foobara that I was inspired to build as a result, talk about why Ruby was the best choice to implement Foobara, and share some interesting Ruby code with folks..

Foobara (https://foobara.org) allows one to build command-centric systems where integration code is automated and abstracted away, allowing developers to focus on expressing the actual domain in a way that is easy to reuse, remodel, and rearchitect. I can link to videos of variations of the talk I'd give, if helpful

I can cover various stuff, depending on time slot length and if any particular subject matter is more interesting:

  • What is Foobara?
  • Why Foobara?
    • Dangers of domain complexity across an org
  • Command-centricity
    • Code that is command-centric vs. not
    • Mental model mismatches across teams/systems
      • REST vs. RPC when a domain model is complex
  • Discoverability
    • Eliminating integration code
  • Foobara concepts other than commands
  • Architecture/concept diagrams
  • LLM-related stuff
    • LlmBackedCommand
    • Agent/Agent-CLI
    • AgentBackedCommand
    • McpConnector
  • Why Ruby for Foobara?

Various code demos are possible, time-permitting/setup-permitting, such as easily coding up an AI agent from scratch using Foobara, various other integrations like CLI, Rack, Rails, Resque, ResqueScheduler, MCP, automatically getting an SDK in Typescript or Ruby, other stuffs.

About the author

Miles started programming in 1995 and started programming professionally in 2001. He discovered Ruby in 2007 and in 2008 and released a gem called externals that helped manage a mixture of Subversion and Git-managed subprojects. At this time he also contributed some small bug fixes to both Rails and Engines before Engines was part of Rails. In 2014, he encountered his first truly complex domain: a p2p mortgage lending platform. In 2021, he coincidentally encountered a second mighty complex domain: a platform for helping folks apply for electric-vehicle rebates/credits who normally don't apply for such programs. In 2022, Miles was the engineering manager on yet another project with a complex domain, a greenfield project, and from the resulting epiphanies he was inspired to create a software framework that he wished he'd had all along, Foobara!

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions