Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How Namely Builds Services

Avatar for mdkess mdkess
February 27, 2018

How Namely Builds Services

A talk about how Namely is building services and tackling complexity as we grow. Presented at https://www.meetup.com/New-York-Kubernetes-Meetup/

Avatar for mdkess

mdkess

February 27, 2018

Other Decks in Technology

Transcript

  1. Service Business Logic Storage (maybe) API Service Business Logic Storage

    (maybe) API Service Business Logic Storage (maybe) API Service Business Logic Storage (maybe) API Service Business Logic Storage (maybe) API
  2. syntax = "proto3"; package namely.examples.people; service People { // Create

    a person. rpc CreatePerson(CreatePersonRequest) returns (CreatePersonResponse) {} // Search for people. rpc FindPeople(FindPeopleRequest) returns (FindPeopleResponse) {} } message Person { // The full name of the person, for example "Jane Smith". Must not be empty. string name = 1; } message CreatePersonRequest { // The person to create. Person person = 1; } message CreatePersonResponse { // A copy of the created person. Person person = 1; } // ... FindPeopleRequest/Response omitted for brevity ...
  3. What about HTTP? ... import "google/api/annotations.proto"; service Echo { rpc

    CreatePerson(CreatePersonRequest) returns (CreatePersonResponse) { option (google.api.http) = { post: "/person/create" body: "*" }; }; rpc FindPeople(FindPeopleRequest) returns (FindPeopleResponse) { option (google.api.http) = { get: "/person/{first_name}" }; }; } ...