- CQRS Journey: Free ebook from Microsoft (Print book available for purchase)
- Functional and Reactive Domain Modeling: A high level overview of how to build up domain models using free monads and interpreters.
- Reactive Microservices Architecture: Free booklet from Lagom and O'Reilly
- Reactive Messaging Patterns with the Actor Model: Applications and Integration in Scala and Akka
- Domain-Driven Design: Tackling Complexity in the Heart of Software
package controllers | |
import java.io.Writer | |
import akka.util.ByteString | |
import io.prometheus.client._ | |
import io.prometheus.client.exporter.common.TextFormat | |
import play.api.http.HttpEntity | |
import play.api.mvc._ |
It's now here, in The Programmer's Compendium. The content is the same as before, but being part of the compendium means that it's actively maintained.
sudo: required #is required to use docker service in travis | |
language: php #can be any language, just php for example | |
services: | |
- docker # required, but travis uses older version of docker :( | |
install: | |
- echo "install nothing!" # put your normal pre-testing installs here |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
A state machine is defined as follows:
Input
- a set of inputsOutput
- a set of outputsState
- a set of statesS0 ∈ S
- an initial stateT : Input * State -> Output * State
- a transition function
If you model your services (aggregates, projections, process managers, sagas, whatever) as state machines, one issue to address is management of State
. There must be a mechanism to provide State
to the state machine, and to persist resulting State
for subsequent retrieval. One way to address this is by storing State
is a key-value store. Another way is to use a SQL database. Yet another way is event sourcing. The benefit of even sourcing is that you never need to store State
itself. Instead, you rely on the Output
of a service to reconstitute state. In order to do that, the state machine transition function needs to be factored into two functions as follows:
#The Functional Programmers Cheat Sheet for NDC Oslo 2014
This year NDC Oslo has a full three-day functional programming track with an amazing lineup. If you agree that the future of programming is FP, use this as your "auto pilot" guide on what sessions to attend.
Cheer for sessions on Twitter using the #ndcoslo and #fptrack hashtags.
[The full agenda (including non-fp sessions) is here].
- Download the perforce visual tool suite from here: http://www.perforce.com/perforce/downloads/index.html
- Copy only the p4merge.app file into your /Applications/ directory
#OS junk files | |
[Tt]humbs.db | |
*.DS_Store | |
#Visual Studio files | |
*.[Oo]bj | |
*.user | |
*.aps | |
*.pch | |
*.vspscc |
require 'mail' | |
class EmailValidator < ActiveModel::EachValidator | |
attr_reader :record, :attribute, :value, :email, :tree | |
def validate_each(record, attribute, value) | |
@record, @attribute, @value = record, attribute, value | |
@email = Mail::Address.new(value) | |
@tree = email.__send__(:tree) |