Listing Details Page

Wilson Mendes

@willmendesneto

Google Developer Expert Web technologies

From monolith to

Page architecture

HI, IT'S ME

#PHOTOTIME

Once upon a time at

is not

benevolent

if you're not following the rules

/v1/listings/123
/v1/agency/123
/v1/agents/123
...
m.domain.com.au

Monolith

Highly coupled code

Mix of layers

Initial version

MVP

V2

S.E.O.

Easy to maintain

Reusable

Let's make it better

* however...

A
S
A
P

fter

eptember,

pril

robably

No more m.domain website

Component based

Web friendly
Migrate page by page

Constraints

WAT ?!?!

Can I use

as a PWA application

?!?!

using

microservices

How easy it is to upgrade

your app?

The micro * way

microservices, microframeworks, micro-whatever

Micro

frontend

The
Strangle

Pattern

Innovation

Component based

Web friendly

Checklist

Listing Details V1

Ok, good, but...

we still have HTTP calls everywhere

Aggregate API

Single data source

Single data source for the page

Stateless

Aggregate API - V1

/v1/listings/123
reads

Listing Indexer

Adding data into the data source

NodeJS plug-and-play tasks
Listening a Queue
Writes to Redis

Listing Indexer - V1

MESSAGE

QUEUES

write
write
write

MESSAGE

QUEUES

/v1/listings/123
reads
write
write
write

Aggregate, indexer

and new problems

how to control the async world?

EVENTUAL CONSISTENCY

// GET listings/1234

{
  "location": [...]
}
// GET listings/1234

{
  "location": [...],
  "listing": {...}
}

Learning

From

Open source

Tooling

Metrics

everywhere

Release early

   Release often

Listing Details V2

Next steps

Because the improvement never ends!

What if the

API goes down?

We are hiring at

wilson.neto@domain.com.au

Thank you

Wilson Mendes

@willmendesneto

Google Developer Expert Web technologies

Made with Slides.com