Tag Archives: TechTalks

ธนาคารยุคใหม่ในบราซิลใช้ Datomic เป็นอาวุธลับสู้กับธนาคารดั้งเดิม

มี experience report/advertisement ออกมาว่า startup ธนาคารเจ้าหนึ่งใน Brazil ที่ชื่อว่า Nubank เลือกใช้ Datomic เป็น database หลักในระบบ NUBANK USES DATOMIC TO SHAKE UP THE BANKING INDUSTRY IN BRAZIL

(Datomic คือ database ที่ถูกสร้างโดยผู้สร้าง Clojure ใช้แนวความคิดหลักเดียวกัน คือ สิ่งที่ write ลงไปแล้วจะไม่สามารถลบได้ สามารถค้นประวัติการ write ออกมาได้หมดในเวลาที่รวดเร็ว ประเด็นหลักที่ทำให้มันไม่เป็นที่รู้จัก น่าจะเป็นเพราะมันไม่ open source)

อ่านดูแล้วรู้สึกมันน่าสนใจมาก เลยไปดู talk ที่ตัวแทนจากทีม Engineer ของ Nubank เล่าให้ฟังเกี่ยวกับการใช้ Datomic ของเค้า

สรุปเนื้อหาคร่าว ๆ ได้ดังนี้

ทีมเริ่มคิดจากกระดาษเปล่า ระดมความคิดว่าจะใช้ tech อะไรดีทำระบบธนาคารยุคใหม่ดี พบ Datomic ก่อน จึงทำให้รู้จัก Clojure ด้วย

  1. Audit Trail – แป๊ะ metadata เข้าไปที่ data ได้ สามารถ query ด้วยเงื่อนไขบน metadata ได้ ไม่มีการโดนลบ
  2. Authorization
    – recursive rule ใช้ช่วย query เมื่อต้องขุด entity relationship หลายๆ ทอด ตัวอย่างของเค้าคือ หาว่าสามารถ show comment หนึ่งๆ ให้ user ดูได้มั้ย
    – database is value สามารถ filter ค่าจาก database ได้เหมือนเป็น collection อันนึง เค้าใช้ช่วยในการ scope data permission
  3. HTTP Cache – สามารถ query ได้ง่ายว่า data มีการเปลี่ยนแปลงจาก request ที่แล้วหรือเปล่า ถ้าไม่เปลี่ยนก็ return HTTP 304 ทันที
  4. Mobile Sync – ใช้การ query history ด้วยเวลาช่วยในการดึง data เฉพาะที่ mobile client ยังไม่มี
  5. Future DBs – สร้าง data ที่ยังไม่เป็นจริงในปัจจุบัน แต่จะเป็นจริงในอนาคต ใช้ช่วยแก้ปัญหาการ charge เงินในอนาตค
  6. Testing – database is value แปลว่าในขณะ test สามารถแทนที่ database ด้วย collection ของ data ธรรมดาได้เลย
  7. Schema Extension – เค้าทำการเพิ่ม schema เข้าไปใน database แล้วเขียน hook เข้ากับ field ใหม่เพื่อทำการ encrypt customer name โดยไม่กระทบกับสิ่งที่ engineer คนอื่นๆ ทำอยู่
  8. Sharding Reads – datomic จัดการ query cache ของแต่ละ shard ให้ และจัดการการเปลี่ยนแปลงแบบ transaction บนหลาย shard ให้ด้วย
  9. Db Aggregation – ถ้ามีหลาย database แล้วทีม analytic ต้องการ aggregate data ก็แค่ระบุ database ทั้งหมดที่ต้องการดึงข้อมูลลงไปใน query
Advertisements

1 เดือนกับ tech meetup ใน San Franscisco

มีโอกาสได้มาใช้ชีวิตอยู่ที่ San Francisco เมืองที่มี startup อยู่เต็มไปหมดแบบนี้ เลยขอโอกาสตระเวนเที่ยว office ของบริษัทต่างๆ ด้วยการไปร่วมงาน tech meetup ที่ใช้สถานที่ของบริษัทเหล่านั้นจัดซะหน่อย เป็นกิจกรรมที่ทั้งได้เที่ยว ได้มื้อเย็นฟรี และได้ความรู้ด้วย

Patrick Huntz – Apache ZooKeeper and the Fallacies of Distributed Computing at Airbnb

ได้เปิดหูเปิดตาว่า ZooKeeper คืออะไร หลังจากได้ยินชื่อมานานแล้ว สรุปมันคือ data store ที่เน้น high-availability เป็นสำคัญ ที่น่าสนใจคือเค้าบอกว่ามันไม่เหมาะกับการเป็นทั้ง database และ key-value store เพราะมันไม่เหมาะสำหรับรับ high-traffic เลย เลยรู้สึกว่า use case มันจำกัดมากๆ

สิ่งที่เค้าใช้นิยม implement บน ZooKeeper คือ server configuration management ซึ่งเท่าที่ดูแล้วต้องเป็นระบบที่ใหญ่พอสมควรทีเดียวถึงจะเริ่มมีประโยชน์ ต้องประมาณจัดการ box ของ service ประเภทเดียวกัน 10 กว่า server ขึ้นไป ไม่อย่างนั้นก็น่าจะยังไม่คุ้มกับ overhead ที่ต้อง setup และ maintain

เป็นงานจัดงาน tech talk คร้ังสุดท้ายใน office เก่าของเค้าพอดีก่อนจะย้ายไปที่ใหม่ office มีการจัดมุมนั่งคุยแปลกๆ น่าสนใจอยู่เยอะ แต่ด้วยความที่ก่อนเข้างานเค้าให้เซ็นเอกสารว่าจะไม่ถ่ายรูปหรือนำงานที่เห็นภายในออกไปเผยแพร่ข้างนอก เลยไม่กล้าถ่ายรูปมาเลย

Continue reading