Go-ing Places
Go 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
Why
Reasons 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
Price
Linux VMs are cheaper
than Windows
33% approx. saving per
VM
Where
Where we run Go
Payment system
50K+ daily transactions
Multiple facets of execution
Encapsulated complexity
Payment card validation
BIN-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
How
How 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…

Going places