E-Commerce and MongoDB at Backcountry.com

Preview:

Citation preview

MONGODB ATBACKCOUNTRY.COMGustavo Leiva. Engineering Manager@gustavoleiva

Keypoints

● MongoDB and E-Commerce

● Technology adoption

● Microservices

● Decoupling

WHO WE ARE

E-Commerce

● Authority, expertise and guidance on outdoor gear, since 1996.

● Started business with open source monolith platform(Perl and PostgreSQL).

● Moved backcountry.com front end to a monolith proprietary enterprise commerce solution on

2012.

● On going effort towards a microservices architecture.

How we work

● Distributed teams: United States (Park City, Portland), Costa Rica(San José).

● Agile.

● Believe in innovation.

● Inspire others.

● Prepare for growth.

● Build technology when it makes sense.

IT Transformation

2000 2012 2015

Perl, PostgreSQL Oracle ATG, Java NoSQL, JVM languages, Node, Automation and more web frameworks.

IT Transformation

● Smaller teams.

● Independent.

● Currently working on increasing automation.

● Organically moving to a microservices architecture.

● Current transition seems to reflect the Conway’s law.

COMMERCEPIPELINE

The pipeline

Socialize

Partner

Guide

Buy On Board Promote Sell Fulfill Follow up

Why MongoDB?

● Simple.

● Flexible.

● Easy to learn. (Quick ramp up with MongoDB U: NodeJS, Java Development)

● Cost effective.

● Fit the use case.

● Our engineers liked it.

● A sense of relief from our former technologies.

● Thumbs up from sys admins and engineers.

Buy On Board Promote Sell Fulfill Follow up

Adoption of MongoDB

● Started as part of a prototype application(MEAN stack).

● Suggest and assign work to writers whenever new product content needed to be written.

● Events would be stored and retrieved from MongoDB.

● Still functioning as an active component of content creation process.

● Reduce time where writers are idle.

Buy On Board Promote Sell Fulfill Follow up

PROMOTE

The Hub

HUB

Buy On BoardPromote Sell Fulfill Follow up

The Hub

● Notify of changes in product, price and inventory.

● Single source of truth for systems requesting data.

● Consolidates data that used to be queried from the legacy platform.

● Step towards decoupling and scalability.

Buy On BoardPromote Sell Fulfill Follow up

MongoDB and the Hub

APIProduct

Inventory

PriceTopics

Buy On BoardPromote Sell Fulfill Follow up

Feeds, the Hub and MongoDB

HUB40% of revenue driven by marketing channels

Buy On BoardPromote Sell Fulfill Follow up

Merchandising, Email

Buy On BoardPromote Sell Fulfill Follow up

Merchandising, Email

● Removed the need of an engineering team to implement new emails.

● Email objects are stored in MongoDB.

● Eventually sent to the third party provider that takes care of sending the actual email.

● Provided visibility into email traffic activity.

● Extended to cover a generic customer notification concept.

Buy On BoardPromote Sell Fulfill Follow up

Merchandising, Email, Data

Buy On BoardPromote Sell Fulfill Follow up

SELL

Front End Commerce Platform Transformation

Buy On Board Promote Sell Fulfill Follow up

Product CommunityCart &

CheckoutTargeting

Users/Tagging/etc

Oracle

● At the time of adoption of enterprise commerce platform, 2012.

● Rigid release process.

● Felt the pain of a replatform. Technical debt.

● Slowdown on business development.

Product

● Created API(Scala, Play) to expose product, category and brand content on the

site.

● MongoDB as product store. Solr as search engine.

● Serves 60% of sites traffic.

Buy On Board Promote Sell Fulfill Follow up

Product Community TargetingCart &

CheckoutUsers/

Tagging/etc

OracleAPI

Product

Buy On Board Promote Sell Fulfill Follow up

● products

● categories

● brands

Community

● Created API(Play, Scala) to store community contributions: reviews, images, videos,

questions, answers.

● Aggregation pipeline used to optimize product contributions wall and customer’s profile wall.

● Opened potential to extend functionality.

● Removed OOTB(ORM) repository layer queries that impacted performance.

Buy On Board Promote Sell Fulfill Follow up

Product Community TargetingCart &

CheckoutUsers/

Tagging/etc

OracleAPI

Community

Buy On Board Promote Sell Fulfill Follow up

● user

● content

Targeting

● Targeting engine from commerce platform exposed as a service.

● Found under utilized personalization capabilities.

● Performance hit from existing overhead to resolve a problem that was simple in the majority of

cases.

Buy On Board Promote Sell Fulfill Follow up

Product Community TargetingCart &

CheckoutUsers/

Tagging/etc

OracleAPI

MongoDB and the FE Commerce Platform

ProductPromotional Content

Community

Buy On Board Promote Sell Fulfill Follow up

Differentiate, Partner

● Experience provided enough confidence to start adding differentiation features.

● Fit data by profile and community review.

● UI aggregation layer for the mobile app.

● Potential for Partnerships.

Buy On Board Promote Sell Fulfill Follow up

Partner

● MongoDB as storage and aggregator of strava

data(NodeJS).

● Assign credits based on historical information of activities

in a time range.

Buy On Board Promote Sell Fulfill Follow up

Partner

Buy On Board Promote Sell Fulfill Follow up

Sync up(10K)

New accounts2K

Day 1

FACING THE CUSTOMERS

Towards a cost effective commerce model

● Effort on decoupling makes the company less dependant on a commerce solution.

● Use the commerce platform for cart & checkout operations, decouple the other pieces.

● Non cart and checkout operations can be fully executed outside the commerce platform.

● Change pricing model to charge by requests rather than cores, better fit for scalability.

Buy On Board Promote Sell Fulfill Follow up

Towards a cost effective commerce model

● Adding more data centers would have significantly increased operational costs in terms of

commerce platform licensing.

● MongoDB reliant APIs plus work on caching strategies(Varnish, Redis) allow us to grow in

terms of traffic, without hitting our pricing model requests threshold.

● We’ll be able to use the commerce platform for what it does best.

Buy On Board Promote Sell Fulfill Follow up

Q4 at Backcountry.com

Buy On Board Promote Sell Fulfill Follow up

Jan Dec

$

Q4 at Backcountry.com, 2013

● Struggled with stability, overhead with monolith enterprise solution.

● Delegated too many tasks to the commerce platform.

● Engineering spent long hours trying to fix things.

● Q4 is the true final test for any technology at backcountry.com

Buy On Board Promote Sell Fulfill Follow up

Q4 at Backcountry.com, 2014

● Commerce platform took less tasks.

● It was the first Q4 of several MongoDB reliant APIs.

● No major issues were presented.

● Best Q4 remembered, in terms of stability and Q4 preparation work.

● Company hit the revenue goal.

Buy On Board Promote Sell Fulfill Follow up

Q4 at Backcountry.com, 2014

Buy On Board Promote Sell Fulfill Follow up

CONCLUSIONS

Challenges

● Keeping schemas clean. 20% Backlog.

● Making sure the use case is a fit. Architectural Review Board.

● Ownership: Owning the stack vs DBA delegation.

● Risk Management.

● Business traction.

What worked

● Fit a variety of use cases.

● Served a diverse amount of traffic.

● Allowed fast adoption and quick development.

● Key technology on the decoupling effort and the strategy around being cost effective.

● Services on top of MongoDB.

● Transparency on DB status with MMS.

THANK YOU

Recommended