นอกเหนือจากข้อเท็จจริงที่ว่า Erlang ได้รับการพัฒนาเป็นพิเศษเพื่อให้ทำงานในสถานการณ์ที่เกิดขึ้นพร้อมกัน / ขนาน / กระจายทั้งสองเทคนิคหลักที่ใช้ในการทำให้เป็นไปได้คือ:
ไม่มีผลข้างเคียง:
ซึ่งหมายความว่าเมื่อคุณให้ฟังก์ชั่นชิ้นส่วนของข้อมูลเพื่อดำเนินการกับมันจะไม่ยกเว้นในกรณีที่เข้มงวดมากส่งผลกระทบต่อสิ่งอื่นในระบบ / กระบวนการทำงาน ซึ่งหมายความว่าหากคุณดำเนินการฟังก์ชั่น 300 ครั้งทั้งหมดพร้อมกันไม่มีการประหารชีวิตทั้ง 300 ครั้งของฟังก์ชั่นที่จะส่งผลกระทบใด ๆ ต่อผู้อื่น
เทคนิคการนำไปปฏิบัติเพื่อให้มั่นใจว่าไม่มีผลข้างเคียงเรียกว่า "การไม่เปลี่ยนรูป" ซึ่งหมายถึงคร่าวๆอาจไม่กลายพันธุ์ (เปลี่ยน) ซึ่งหมายความว่าทันทีที่คุณสร้างตัวแปรค่าของตัวแปรนั้นอาจไม่สามารถแก้ไขได้ Erlang ใช้ลักษณะการทำงานนี้ด้วย "การกำหนดเดี่ยว" ดังนั้นหลังจากที่คุณกำหนดค่าให้กับตัวแปรแล้วคุณไม่สามารถกำหนดค่าให้กับตัวแปรได้อีก
X = 1.
X = 2. // This is not a valid operation
สิ่งนี้ทำให้มั่นใจได้ว่าไม่มีรหัสใดที่อาจเปลี่ยนแปลงค่าของ X ที่ก่อให้เกิดสภาพการแข่งขันโดยไม่ตั้งใจดังนั้นจึงเป็นความปลอดภัยของเธรด นี่เป็นพฤติกรรมที่ผิดปกติอย่างมากระหว่างภาษาซอฟต์แวร์และวิธีที่ใหญ่ที่สุดที่ Erlang จัดการนั้นเหมาะสมอย่างยิ่งสำหรับการดำเนินการพร้อมกัน
โมเดลนักแสดง:
นี่เป็นวิธีการเฉพาะในการสร้างแบบจำลองที่แสดงให้เห็นว่าการใช้งานและการจัดการการประมวลผลพร้อมกันนั้นง่ายมากสำหรับนักพัฒนา ส่งตรงจากวิกิพีเดีย (http://en.wikipedia.org/wiki/Actor_model):
โมเดลนักแสดงนำปรัชญาที่ว่าทุกอย่างเป็นนักแสดง สิ่งนี้คล้ายกับทุกสิ่งที่เป็นปรัชญาวัตถุที่ใช้โดยภาษาการเขียนโปรแกรมเชิงวัตถุบางอย่าง แต่ความแตกต่างในซอฟต์แวร์เชิงวัตถุนั้นจะถูกดำเนินการตามลำดับโดยทั่วไป นักแสดงเป็นหน่วยงานการคำนวณที่ตอบสนองต่อข้อความที่ได้รับสามารถพร้อมกัน: ส่งข้อความจำนวน จำกัด ไปยังนักแสดงคนอื่น ๆ ; สร้างนักแสดงหน้าใหม่จำนวน จำกัด กำหนดพฤติกรรมที่จะใช้สำหรับข้อความถัดไปที่ได้รับ ไม่มีลำดับการสันนิษฐานสำหรับการกระทำข้างต้นและสามารถดำเนินการคู่ขนาน การแยก Decoupling ผู้ส่งจากการสื่อสารที่ส่งเป็นความก้าวหน้าขั้นพื้นฐานของรุ่นนักแสดงที่เปิดใช้งานการสื่อสารแบบอะซิงโครนัสและโครงสร้างการควบคุมเป็นรูปแบบของการส่งข้อความ