Going places

26
Go-ing Places Go in the travel industry

Transcript of Going places

Go-ing PlacesGo in the travel industry

Introduction

Paul Mooney

Host, insidethecpu.com

Architect, Ryanair Labs

Programming with Go for > 1 year

Schedule

Why

Where

How

Disclaimer

I’m not a recruiter

WhyReasons we chose Go

But first, why not

Not another language!

Not pervasive enough

Low-yield talent pool

Speed

Inter-process communication

Dependency analysis

Reduced dependency on C

Efficient mark-and-sweep garbage collection

Beauty

Promotes idiomatic code

Structure and documentation are part-and-parcel

Parallelism is eas[y](ier)

Communicating Sequential Processes (CSP)

Parallelism

Communicating sequential processes

Multithreading is hard

Often not worth the overhead

Parallelism

High-level concurrency support

Goroutines

Channels

Goroutines vs. threads

Smaller memory footprint

Disconnected from OS threading mechanism

More scalable stack

Encapsulated preemption, synchronisation

PriceLinux VMs are cheaper than Windows

33% approx. saving per VM

WhereWhere we run Go

Payment system

50K+ daily transactions

Multiple facets of execution

Encapsulated complexity

Payment card validationBIN-range lookup

Luhn check

Sensitive data-retrieval

External security

Internal security

Fraud-detection

Dynamic currency-conversion (DCC)

Sensitive data retrieval

Making a payment

PCI compliance

HowHow Go works

Static types

Variables retain specified type

Problems identified at compile-time

Memory management

Variables live on the stack or heap

Generally favour the local call stack

Heap reserved for long-life or large objects

–You

“Just show me the damn code!”

What exactly is Go

Functional

Object Oriented

Final thoughts

Backbone of Ryanair finance

Reduced cost

Increased speed of operation

Standardised developement model

Shameless plug

Source code

https://github.com/daishisystems/fallback

https://github.com/daishisystems/month

ie.linkedin.com/in/daishisystems

@daishisystems

That’s it…