Going places

Preview:

Citation preview

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

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)

Superb data-transfer and memory management

Price

Linux VMs are cheaper than Windows

33% approx. saving per VM

Goroutines vs. threads

Smaller memory footprint

Disconnected from OS threading mechanism

More scalable stack

Encapsulated preemption, synchronisation

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!”

Final thoughts

Backbone of Ryanair finance

Reduced cost

Increased speed of operation

Standardised developement

Shameless plug

Source code

https://github.com/daishisystems/fallback

https://github.com/daishisystems/month

ie.linkedin.com/in/daishisystems

@daishisystems