Arch Study Group

Objective

We meet every 3 weeks (off-weeks of Python Study Group and Frontend Study Group) to collectively learn about edX architecture principles and how to put them into practice in our daily engineering.

Why?

Each of us is an architect of every line of code we write, every module and abstraction we build, and every system component and service that we design. This study group allows us to learn from our past mistakes, learn from practices emerging from industry-wide experiences, and collectively align and develop our own architectural principles to follow at edX. Anticipated outcomes of edX intentional architecture include (1) sustainably accelerated development (2) improved developer engagement and (3) a more robust teaching and learning (Open) edX platform.

What?

We will begin by collectively writing and understanding more deeply the architectural principles proposed in Architecture Manifesto (and maybe Architecture Principles).

Schedule

Date

Topic

Presenter

Links

 

Date

Topic

Presenter

Links

 

Mar 24, 2020

Data Redundancy beats Coupling across Distributed Services

@Feanil Patel (Deactivated) @Nimisha Asthagiri (Deactivated)

 

Apr 14, 2020

Extensions beat Core Modifications

@Nimisha Asthagiri (Deactivated)

 

May 5, 2020

Extensions beat Core Modifications, extended

@Dave Ormsbee (Deactivated)

In this Arch Study Group, we will build upon what we learned in the last study group. So if you could not make the last one on SOLID and Extensions, please catch up via the speaker notes in the following slides prior to attending this session: SOLID Design Principles, edX’s Path to Extensions

Jun 16, 2020

DDD Bounded Contexts beats Shared Business Logic

@Calen Pennington (Deactivated)

Cale will lead us through exercises and principles related to where/how to draw boundaries, using techniques and concepts from Domain-driven Design. We will discuss and apply our learnings to the edX system.

Sep 8, 2020

Boundaries: Cohesion, Coupling, Microservices, and Domain-Driven Design

@Nimisha Asthagiri (Deactivated)

Join me today as we study the time-old question of boundaries and modularity (cohesion & coupling). We will see how this relates to micro-services (should this be a new service or not?) This is a baseline discussion for "Why Domain-driven Design".

Oct 20, 2020

Bounded Autonomy beats Coordination: Reversibility & Uncertainty of Decisions

@Nimisha Asthagiri (Deactivated)

In this workshop, we will explore the 1st item in the Manifesto: Autonomy beats Coordination. We will crowd-source ideas on the reversibility of technical decisions at edX. If time permits, we will also do an exercise to calibrate ourselves on our ability to quantify the certainty of our decisions.

Nov 10, 2020

Thoughtworks Tech Radar Review

@Nimisha Asthagiri (Deactivated)

This week, we'll break out into groups and review items from the latest ThoughtWorks Tech Radar.

Feb 2, 2021

How XBlocks work in edx-platform

@Nathan Sprenkle

Come join us as Nathan Sprenkle presents what he's learned from his experiences working with the Open-Response-Assessment (ORA) XBlock

He'll be answering the question, "when I visit a course on edX, what happens to get interactive course content rendered to the page?" Along the way, we'll go on an archeological adventure through edx-platform and the XBlock runtime to understand the roles they play and examine some of the clever tricks going on to assemble the different pieces.

Feb 23, 2021

Yoking UX & Tech: The value of customer-centricity

@Stacey Messier (Deactivated) @Gabe Mulley (Deactivated) @Nimisha Asthagiri (Deactivated)

Stacey, edX’s Head of UX will lead a workshop (with assists from Gabe and Nim), on embedding UX into technical design and engineering.

Do you know the difference between Customer Insights and Customer Centricity?

Would you like hands-on experience with applying UX insights into your technical design

Is there a value in doing so?  Don’t take our word for it. Come and experience it!

Mar 16, 2021

Moving & Building Boxes of Domains and Bounded Contexts

Theme Strategies -> Conway -> Arch Boundaries -> Ownership



@Nimisha Asthagiri (Deactivated)

Let's plan to rebuild our bounded contexts diagram. We'll use Miro to empower ourselves (in small groups?) to create and move boxes.

Are there opportunities to define cleaner boundaries between domains that enable better theme-specific autonomy? Are there terms and concepts that need updating, given what we know now?

We'll briefly review a few domain-driven design (and team topology) principles and then dive right into a working session.

If you're looking for diagramming inspiration, check out Got a wicked problem? First, tell me how you make toast.

Apr 6, 2021

Yoking UX and Tech (part deux)

@Stacey Messier (Deactivated) @Gabe Mulley (Deactivated) @Nimisha Asthagiri (Deactivated)

  • Recap what we learned from Part 1.

  • Panel discussion on applying UX in Enterprise and SRE teams.

  • Collectively share our experiences and learnings.

  • Conclude with take-aways from this series.

Aug 25, 2021

Django Events and Signals

@Dave Ormsbee (Deactivated)

Come learn about Django signals, the openedx-events library, and how we want to leverage events to make it easier to write extensions in Open edX! This will be a recorded arch workshop session.

Related Resources

Requested Topics

  • Loosely Coupled beats DRY