This episode was published on 9 July 2020 and is approximately 53 minutes long. This episode made possible by Glow Your Soul and Anchor.fm.
This is the third in our series about using Low Code at scale in an enterprise environment. In this episode we take a deeper look at how we’re using low code at eXp Realty, how we’ve built a microservices infrastructure, and talk about our experiences while pushing the envelope.
We talk about a lot of our processes and how we grew from a handful of engineering folks to more than thirty, and three teams to ten. This isn’t all low code related, it’s about software, process, and delivery.
Listen on Apple Podcasts
Listen on Anchor.fm
Listen on Spotify
Show Notes & Selected Links
Mendix is our primary software platform.
- Join process
- Transaction processing
- Brokerage Operations
We integrate with a number of third party tools. We use Okta as our identity provider and internally we call it our Passport.
We integrate with payment gateways, payment providers, and listing management tools. Integrations have been a key objective for our team. Build some tools, integrate with many more.
We took low code, rapid development, to heart. We deployed code and features without necessarily thinking about what the future might look like.
Thinking about Episode 1, we turned a growing real estate brokerage into a Technology Company, which does real estate. That’s how we talk about it internally. We’re agent success obsessed, but we apply technology where we can to improve any process.
7 min: Growing our team and our applications
- Started with four or five people
- Within a year, had more than thirty people involved in software development
Streamline the Agent Onboarding Process
- We won an award at Mendix World 2019 for Digital Transformation which was based on our modifications to the Agent Onboarding Process
Monolithic Application Issues
- Multiple teams working on one code base
- Releases interconnected
- Each project is dependent on the other for timeline
The Ah Ha Moment
- Presented this at Mendix World 2019
- View the Presentation (PDF).
14 min: Starting the journey to microservices
Finding the seams in the organization, which were also present in the applications.
- Finding the right domains, makes a lot of difference!
- Link to the domain design book
- This is a concept we use at eXp. Monthly meeting for all developers to get together to learn something.
- A team might share something they’re working on
- A lead might share something new
- It’s a great way to build the teams, improve knowledge
Books we read, and recommend
When you’re making a change, you need a set of goals, and standards. There are pros and cons of each decision you’re going to make. You have to make a decision, stick to it, and be willing to iterate.
Innovation Team Rodeo
- Similar to how we train our developers, we have all the members of Agile Feature Teams, which we call Innovation Teams, get together once a month.
- Use this time to teach, to review, to talk about what we’re struggling with.
- Open environment to allow for conversations, and challenges, and ways to improve as a team.
20 min: Training the team
- Be willing to spend time to train your resources
- Use books, buy them for the team
- Use online learning, like Udemy
Standards for Services
- Enable business at scale
- Support third party vendors
- Support business innovation
- Reduce complexity
- Favor Rapid Development and Feedback
- Consistent interfaces and the right tool for the job
Design and Delivery
- HTTP, REST, OData
- These align with with Real Estate Standards Organization (RESO)
- Continuous Integration / Continuous Delivery (CI/CD)
- Limit shared code; which we took to mean no shared code, no shared libraries
- Small standalone services
“Microservices - size is relative. Stand alone service, which is right sized to accomplish the necessary goal.”—Steve Ledwith
Don’t fall into the pre-optimization trap!
- Get your application working first, then find the sensible seams to break it apart into smaller services
Once we found a path, we split the humans along the business value streams. This helped to setup teams which made sense for the business, and technology.
Product Launch Specialists
- Member of our Innovation Teams dedicated to getting the word out to our users about what we’re delivering.
- Day to day, they work on release notes.
- They create how-to documents for new features
- They help to drive adoption of what we’re creating
- Secret inside name: Engineering Evangelists
- They handle the last mile of the delivery loop, especially the feedback from the users
Changing the culture made a tremendous difference when realigning the technical resources. Business buy-in, is the key to success for any good technology project!
The Catalyst / Accelerator Team
- System Reliability Engineer (SRE); part of our DevOps ethos.
- Engineering Leadership
- Product Leadership
- Company / Operations Leadership
- Scrum Master to help with all ceremonies
- This team was key to our success; this team cleared blocks, served as a tie-breaker, and providing guidance
- Place for teams to share ideas and get feedback
37 min: Microservice Timeline
- March 2018 eXp Leadership and Mendix meet to discuss MicroServices
- Mid-May 2018 - Engineering leadership met with Mendix architect to devise a plan to move to microservices
- End of May 2018 - socialized concept to the Engineering and Product teams
- August 2018 - broke apart into various Innovation Teams
- End of 2018 first few services deployed - our eXperts Directory, Guest Management, Join Application on the verge of roll-out
- In 2019 we released 19 microservices in multiple technology stacks including one of our largest services, Transactions Processing, in August
- Starting in mid-Q2, we created a new suite of tools for international expansion and launched UK and Australia in the third quarter
Imran mentioned the Mendix Microservice Webinar we all watched. Its a solid presentation, and worth your time!
Technology Stacks in Production today
- React JS
- and more!
Breaking Transactions out of our Monolith
- Started in August 2018
- Finished in August 2019
- Had a “feature freeze” for two weeks
- Added more than 120 new features while we were extracting the features into a new microservice
“Don't try to build a microservice at the start - start with a working service!”—Imran Kasam
We’ve applied a number of principles
- Microservice architecture
- Event driven architecture
- Domain driven architecture
Understanding your domain, and having an agreement on what each service is responsible for, will help you make better decisions down the road.
In this three part series, we’ve talked about
- Low code at scale
- Software development at scale
- Challenges of low code
- How we’ve applied low code in a mulit-million dollar, international company
- Make certain your objective fits your technology, and your technology fits your objective
- Start with the end in mind
Disclaimer: Some of the links provided are affiliate links meaning, at no additional charge to you, The Architect and the Executive may earn a commission if you make a purchase.