G1efx90d0efg1gkqfvrx
SkillsCast

Functional Service Oriented Architecture

4th May 2016 in London at CodeNode

This SkillsCast was filmed at Functional Service Oriented Architecture

In this meetup Jamie will give a talk on how to compose abstract service components by exploiting two core functional concepts of the Monad Type Class and the Natural Transformation.

Service-oriented architectures typically have many common components, such as authentication and logging. It's desirable to reuse these components across services, but it's not always easy to structure the code in a way that allows this. Fortunately, functional programming itself can provide us with all the tools necessary to achieve this goal. In this talk I will explore some key design patterns and types which will be brought together to create a complete service architecture, end to end.

Jamie will show how to compose abstract service components by exploiting two core functional concepts of the Monad Type Class and the Natural Transformation. With these components, concerns such as transactionality, asynchronicity and failure handling can be deferred or altered without any impact on your core logic. By making minor changes in our integration layer we could transform an in-memory session handler to persist to a transactional database, make an email dispatcher non-blocking, or introduce event sourcing on a key-value repository.

YOU MAY ALSO LIKE:

Thanks to our sponsors

Functional Service Oriented Architecture

Jamie Pullar

Jamie is a senior developer in Concentra's Product Development Team. Having spent the last 4 years developing services in Scala, Jamie has been focused on taking service orientated architecture patterns into the functional space. Hailing from a background in maths, he seems to take a perverse pleasure in finding new ways to abstract problems. Most of his work is in back-end services and modelling.

SkillsCast

In this meetup Jamie will give a talk on how to compose abstract service components by exploiting two core functional concepts of the Monad Type Class and the Natural Transformation.

Service-oriented architectures typically have many common components, such as authentication and logging. It's desirable to reuse these components across services, but it's not always easy to structure the code in a way that allows this. Fortunately, functional programming itself can provide us with all the tools necessary to achieve this goal. In this talk I will explore some key design patterns and types which will be brought together to create a complete service architecture, end to end.

Jamie will show how to compose abstract service components by exploiting two core functional concepts of the Monad Type Class and the Natural Transformation. With these components, concerns such as transactionality, asynchronicity and failure handling can be deferred or altered without any impact on your core logic. By making minor changes in our integration layer we could transform an in-memory session handler to persist to a transactional database, make an email dispatcher non-blocking, or introduce event sourcing on a key-value repository.

YOU MAY ALSO LIKE:

Thanks to our sponsors

About the Speaker

Functional Service Oriented Architecture

Jamie Pullar

Jamie is a senior developer in Concentra's Product Development Team. Having spent the last 4 years developing services in Scala, Jamie has been focused on taking service orientated architecture patterns into the functional space. Hailing from a background in maths, he seems to take a perverse pleasure in finding new ways to abstract problems. Most of his work is in back-end services and modelling.