1 of 16

Arch BEES

Arch: mischievous or playful��When someone acts archly,�it might taunt you or�it might make you laugh.

Bees: honeybees��Symbol of hard work,�dedication and�sustainability.

1

2 of 16

Scaling Sustainably

Time to Market

Community and Codebase Size

2

3 of 16

Boundaries

Extensions

Events

Standards

3

4 of 16

Boundaries

4

5 of 16

Frontend Plugin Framework

with Javascript APIs & Hooks

Backend Plugin Framework

with Python APIs & Hooks

Extensions

5

6 of 16

A. Backend� Apps

B. Micro Services

C. Micro Frontends

D. Frontend� Apps

Events

6

7 of 16

Events

7

8 of 16

Standards

8

9 of 16

Standards

9

10 of 16

Standards

10

11 of 16

Write purpose of components (repos/apps) in their READMEs.

Review OEP-50 and its ADRs; will impact edx-platform dev.

Read and upskill in upcoming event-driven arch book club.

Boundaries

Extensions

Events

Standards

Review LTI Freedom OEP coming with Experience Plugins.

11

12 of 16

Intentionality

12

13 of 16

Getting to Extensible Core

Need to build together differently

We cannot scale contributions,� We cannot grow our developer capacity,� Unless we build together an extensible core.

Here’s how we get there:

  • Boundaries
  • Extensions
  • Events
  • Standards

For more information on Open edX’s B.E.E.S. strategy:

watch video clip 6:22->13:45

13

14 of 16

Monolith�slows us down

Monolith (Ball of Mud)

Extension of Monolith

Separate Small Service

Lines of code to understand when developing �
(cognitive load)

2.5 Million

5-100 Thousand

100 Thousand

Lines of code-mates (in-process) when running on edx.org
 (risk of error)

2.5 Million

2.5 Million

100 Thousand

Time it takes to see a change get to edx.org after development (lead time)

2-4 hours

2-4 hours

10-30 mns


Number of other developers to depend on for success
�(reduced autonomy)

100+�(many engineers)

100+�(many engineers)

6-8�(owning team)

Examples of features in each situation

  • Learner Dashboard
  • Import-Export
  • Video XBlock
  • ORA
  • Coaching
  • Personalized Dates
  • Registrar
  • Publisher
  • Enterprise Admin

The monolith contains 2.5 million lines of code, organically accumulated over the years.

The lack of separation of concerns in the monolith make it hard to make changes on features within it, requiring high cognitive load.

The first step in taming�the monolith (or migrating �its code to smaller �services) is establishing �Boundaries.

14

15 of 16

Getting to Extensible Core�Valuable code is stuck in the monolith (Ball of Mud).

More valuable code continues�to be added to the monolith,�now reaching 10,000+ files.

We cannot innovate as fast as we did in 2012 on the features and functionalities that are still stuck in the monolith.

15

16 of 16

Getting to Extensible Core

Ball of Mud -> Boundaries of Modularity

BoundariesHigh interconnectedness reduces developer autonomy and requires unscalable communication structures. Lack of aligned business taxonomy makes naming hard. �Action: Establish business-domain names and document our codebase by business concerns. Later, separate the codebase, aligned with organizational boundaries.�Next Step: Document purpose of each component.

Extensions�Today, new features are still built in the monolith since it is easier to do so. Adding new code to the existing tangledness exacerbates problems.�Action: Invest upfront in extensibility frameworks and APIs. Collaborate on developing, advancing, and using these frameworks, with senior engineers and product.�Next Step: Develop with APIs & extensions.

Events�The lack of real-time notifications of user and platform events forces developers to create tightly coupled & fragile connections in our system.�Action: Invest in designing and implementing event-based frameworks. Take the time to learn industry best practices to prevent false starts and long-term issues.�Next Step: Education on event-driven architecture.

Standards�Proprietarily built solutions and APIs prevent us from leveraging industry commodities and technologies in the EdTech space.�Action: Expand usage of existing/new standards integrations in our platform. Leverage our 1-year-old membership in IMS Global to identify and prioritize our certifications.�Next Step: Adopt xAPI/Caliper & ‘LTI Freedom’.

Ask: Deliberateness in investing in BEES when squads implement new features and update old ones we care about.

16