Slide 1

Slide 1 text

© 2023 Reiwa Travel, Inc.
 NEWT Architecture Evolution How we scaled and improved our architecture over time

Slide 2

Slide 2 text

© 2023 Reiwa Travel, Inc.
 Profile ● Nationality: Argentinian ● Language: Spanish, English, Japanese ● Full Stack Developer (+10y) Career ● 󰎆 2006~: Freelance ● 󰎆 2008~: PowerSite ( CTO/CEO ) ○ Email Marketing SaaS ● 󰏦 2015~: Travelience ( CTO ) ○ Tour Guide Marketplace ● 󰏦 2021~: ReiwaTravel ( Senior Engineer ) Senior Engineer / Product-Dev Rodrigo Ramirez

Slide 3

Slide 3 text

© 2023 Reiwa Travel, Inc.
 NEWT Architecture Evolution How we scaled and improved our architecture over time

Slide 4

Slide 4 text

AGENDA
 © 2023 Reiwa Travel, Inc.
 1. Prototyping (まず動かす ) 2. Pre-Release (リリースに備える ) 3. Post-Release (良くする) 4. Product & Team Scaling (チーム・サービスをスケールする ) 5. Future (進化し続ける ) Architecture Phases

Slide 5

Slide 5 text

AGENDA
 © 2023 Reiwa Travel, Inc.
 1. Prototyping (まず動かす ) 2. Pre-Release (リリースに備える ) 3. Post-Release (良くする) 4. Product & Team Scaling (チーム・サービスをスケールする ) 5. Future (進化し続ける ) Architecture Phases

Slide 6

Slide 6 text

1. Prototyping まず動かす ● Phase: 0~1 ● Goal: Create NEWT MVP ● Priority: Initial Development Speed ● Decisions: 1. Infrastructure 2. Development 3. Scope

Slide 7

Slide 7 text

1 Infrastructure ● Self Managed ● Vercel to Host our API and Admin UI ● We didn’t have a production env ● DB hosted on GCP (Vercel didn’t offer that solution) 1. Prototyping まず動かす

Slide 8

Slide 8 text

2 Development ● Monolithic API ● Full-Stack Developers = Unified Programming Language ○ Backend: TypeScript / GraphQL ○ Frontend: Next.JS / TypeScript / React / GraphQL 1. Prototyping まず動かす

Slide 9

Slide 9 text

3 Scope ● Reduce initial features scope ● Make things that do not scale 1. Prototyping まず動かす

Slide 10

Slide 10 text

アーキテクチャの概要 Architecture Overview Cloud SQL Instance #1 Native Apps iOS Android Third Party Firebase Environments: Dev API ADMIN UI WEBVIEW UI Webflow

Slide 11

Slide 11 text

AGENDA
 © 2023 Reiwa Travel, Inc.
 1. Prototyping (まず動かす ) 2. Pre-Release (リリースに備える ) 3. Post-Release (良くする) 4. Product & Team Scaling (チーム・サービスをスケールする ) 5. Future (進化し続ける ) Architecture Phases

Slide 12

Slide 12 text

● Phase: Pre-Release ● Timeline: 2022年3月~2023年4月 ● Goal: Production Ready ● Priority: 1. Production Environment 2. Performance 3. Security 2. Pre-Release リリースに備える

Slide 13

Slide 13 text

1 Production Environment ● Created Production ENV ○ Vercel→GCP ○ Terraform 2. Pre-Release リリースに備える

Slide 14

Slide 14 text

2 Performance ● Runned Load tests and optimized API and DB Queries ● Added DB read-replicas to distribute load ● Setup Monitoring and Alerts 2. Pre-Release リリースに備える

Slide 15

Slide 15 text

2 Security ● Hired a Security Company to audit our service ● Applied GraphQL Security Best Practices ● Services & Application logs 2. Pre-Release リリースに備える

Slide 16

Slide 16 text

アーキテクチャの概要 Architecture Overview Cloud Run Cloud SQL Instance #1 reader 1 reader 2 reader N Cloud Trace Cloud Monitoring … Native Apps iOS Android API ADMIN UI Third Party Firebase Webflow Environments: Production, Staging … Webview UI

Slide 17

Slide 17 text

アーキテクチャの概要 Architecture Overview Cloud Run Cloud SQL Instance #1 reader 1 reader 2 reader N Cloud Trace Cloud Monitoring … Native Apps iOS Android API ADMIN UI Third Party Firebase Webflow Environments: Production, Staging … Webview UI

Slide 18

Slide 18 text

AGENDA
 © 2023 Reiwa Travel, Inc.
 1. Prototyping (まず動かす ) 2. Pre-Release (リリースに備える ) 3. Post-Release (良くする) 4. Product & Team Scaling (チーム・サービスをスケールする ) 5. Future (進化し続ける ) Architecture Phases

Slide 19

Slide 19 text

● Phase: Post-Release (First Year) ● Goal: Improve our Service/Operations ● Actions: 1. Improve NEWT functionality 2. Expand our services 3. Process Automation 3.Post-Release 良くする

Slide 20

Slide 20 text

1 Improve NEWT functionality ● Feedback from Customers → Improve current features ● Develop missing core features (NEWT Point, …) 3.Post-Release 良くする

Slide 21

Slide 21 text

2 Expand our services ● NEWT Web ● NEWT Magazine ● NEWT Hotel ○ Mobile App ○ Web 3.Post-Release 良くする

Slide 22

Slide 22 text

3 Process Automation ● Connect with external providers (Hotel & Flight APIs) ○ Inventory daily updates ○ Booking Arrangement Automations 3.Post-Release 良くする

Slide 23

Slide 23 text

アーキテクチャの概要 Architecture Overview Cloud Run Cloud SQL Instance #1 … reader 1 reader 2 reader N … Cloud Trace Cloud Monitoring Cloud Task Big Query … Native Apps iOS Android NEWT NEWT-HOTEL MAGAZINE … API ADMIN UI Third Party Firebase Flight APIs Hotel APIs … Environments: Production, Staging Webflow

Slide 24

Slide 24 text

アーキテクチャの概要 Architecture Overview Cloud Run Cloud SQL Instance #1 … reader 1 reader 2 reader N … Cloud Trace Cloud Monitoring Cloud Task Big Query … Native Apps iOS Android NEWT NEWT-HOTEL MAGAZINE … API ADMIN UI Third Party Firebase Flight APIs Hotel APIs … Environments: Production, Staging Webflow

Slide 25

Slide 25 text

Micro-Frontend Web: Micro-Frontend /(*.) newt.net /hotel/(*.) /mag/(*.) /lp(*.) /tour/(*.) newt-web newt-hotel newt-magazine webflow Domain Path Apps Repository NEWT Web ( Monorepo )

Slide 26

Slide 26 text

AGENDA
 © 2023 Reiwa Travel, Inc.
 1. Prototyping (まず動かす ) 2. Pre-Release (リリースに備える ) 3. Post-Release (良くする) 4. Product & Team Scaling (チーム・サービスをスケールする ) 5. Future (進化し続ける ) Architecture Phases

Slide 27

Slide 27 text

● Phase: Current ● Goal: Scale our service and product team organization ● Actions: 1. Team Structure 2. Traffic Spike Support 4.Product & Team Scaling チーム・サービスをスケールする

Slide 28

Slide 28 text

1 Team Structure ● From 1 team to multiple teams ○ Parallel Development → Multiple Dev Environments ○ Increase Releases → Git Branch Strategy Backend Frontend Mobile PM … Backend Frontend Mobile PM … Team 1 Team 2 Team 3 Team 4 4.Product & Team Scaling チーム・サービスをスケールする

Slide 29

Slide 29 text

2 Traffic Spike Support ● Database Bottlenecks ○ Tour Search from RDS to Elasticsearch ○ Web Caching Strategies 4.Product & Team Scaling チーム・サービスをスケールする

Slide 30

Slide 30 text

アーキテクチャの概要 Architecture Overview Cloud Run Cloud SQL Instance #1 … reader 1 reader 2 reader N … Cloud Trace Cloud Monitoring Cloud Task Big Query … Native Apps iOS Android NEWT NEWT-HOTEL MAGAZINE … API ADMIN UI Third Party Firebase Flight APIs Hotel APIs Elastic Cloud Webflow Environments: Production, Staging, Dev 1…N …

Slide 31

Slide 31 text

技術スタック Technology Stack

Slide 32

Slide 32 text

AGENDA
 © 2023 Reiwa Travel, Inc.
 1. Prototyping (まず動かす ) 2. Pre-Release (リリースに備える ) 3. Post-Release (良くする) 4. Product & Team Scaling (チーム・サービスをスケールする ) 5. Future (進化し続ける ) Architecture Phases

Slide 33

Slide 33 text

● Phase: ( Next ) Future Challenges ● Goal: Prepare System to support NEWT evolution ● Challenges: 1. Team/Code Isolation 2. Smarter Solutions using AI/LMM 3. Global Expansion 4. … 5. Future 進化し続ける

Slide 34

Slide 34 text

1 Team/Code Isolation ● Reduce Code Conflicts ● Reduce Cognitive Load ● Isolate Data & Deployments 5. Future 進化し続ける

Slide 35

Slide 35 text

5. Future 進化し続ける

Slide 36

Slide 36 text

5. Future 進化し続ける

Slide 37

Slide 37 text

5. Future 進化し続ける

Slide 38

Slide 38 text

2 Smarted Solutions using AI/LLM ● Incorporate more AI/LLM into NEWT service ○ Deliver Better and Smarter Features to Customers ○ Optimize Internal processes 5. Future 進化し続ける

Slide 39

Slide 39 text

3 Global Expansion ● Multi-Language ● Multi-Currency ● Timezone Support ● … 5. Future 進化し続ける

Slide 40

Slide 40 text

AGENDA
 © 2023 Reiwa Travel, Inc.
 1. Prototyping (まず動かす ) 2. Pre-Release (リリースに備える ) 3. Post-Release (良くする) 4. Product & Team Scaling (チーム・サービスをスケールする ) 5. Future (進化し続ける ) Architecture Phases

Slide 41

Slide 41 text

© 2023 Reiwa Travel, Inc.
 We are hiring!!!! reiwatravel.co.jp/engineers

Slide 42

Slide 42 text

Thank you!
 © 2023 Reiwa Travel, Inc.
 @xpromx