Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Achieving API Performance and Scalability

Achieving API Performance and Scalability

Speaker:
Dandi Diputra
Technical Lead Manager - Joined OY! Indonesia

Ngalam Backend Community

July 21, 2020
Tweet

More Decks by Ngalam Backend Community

Other Decks in Technology

Transcript

  1. Bits and Pieces About Speaker Technical Lead Manager - Joined

    OY! Indonesia from 2017 Past Experiences in Aviation, Embedded System, Telco and Financial Tech. OY! Indonesia Our mission is for everyone in Indonesia to have an easier, faster, more affordable and seamless financial service experience.
  2. OY! Indonesia Journey Founded Dec 2016 Product Prototyping OY! Chat

    Sept 2017 Serving 10 Millions Chats Daily Rich Chat Features Payment on Chat Oct 2017 P2P Payment Sending Fund via Chat Enable P2P / B2B Sept 2018 Integrated with Payment Aggregator Integration June 2019 Integrated with 98 network of Banks and e-Money Here We Are Now... June 2020 Processing Trillion Rupiah of Transactions
  3. WHAT IS API PERFORMANCE? APIs should be functionally correct, as

    well as available, fast, secure and reliable
  4. First to Know - Clarify Scope of the System -

    User Cases and its constraints. Example: Ride Hail vs Fintech - High Level Architecture Design - Application Service Layer, Storage, 3rd Party services. - Component Design - Object Oriented Design and Database Schema Design - Understand Bottlenecks
  5. System Design - Design Pattern - Design Pattern use OOP

    concepts - fulfill S.O.L.I.D principles - Consistency and Code Readability - Speed Up Development - Easy Maintenance - Open for Extension (Easiness to add/remove feature) - Design Patterns do not guarantee an absolute solution!
  6. Database Tuning - Indexes CREATE INDEX friends_name_asc ON friends(id ASC);

    EXPLAIN ANALYZE SELECT * FROM friends WHERE name = 'Blake';
  7. Database Tuning - Data Cache Cache using Redis, MemCache etc.

    Benefits - Speed Up Slow Queries - Reduce RAM/CPU load at DB Server (might beneficial for Cloud-based service) - Add some functionality
  8. Infrastructure - Containerize! Beneficials for for Microservices Architecture. Example of

    Kubernetes benefits: - Automated Rollouts/Rollbacks - Service Health Monitoring - Automatic Scaling of Services - Deploy Anywhere
  9. API Monitoring - Why? - Catch Problems Early - Monitoring

    and Measurement - Check API Availability - Functional Correctness - Performance - Evaluate and Plan for The Future